mirror of
				https://github.com/suyiiyii/SIMS.git
				synced 2025-11-04 15:54:52 +08:00 
			
		
		
		
	
						commit
						0eee7b6862
					
				@ -2,6 +2,8 @@ package top.suyiiyii.sims.controller;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import io.swagger.v3.oas.annotations.Operation;
 | 
					import io.swagger.v3.oas.annotations.Operation;
 | 
				
			||||||
import jakarta.servlet.http.HttpServletRequest;
 | 
					import jakarta.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import jakarta.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import jakarta.servlet.http.HttpSession;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
import org.modelmapper.ModelMapper;
 | 
					import org.modelmapper.ModelMapper;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
@ -17,6 +19,7 @@ import top.suyiiyii.sims.service.CategoryService;
 | 
				
			|||||||
import top.suyiiyii.sims.service.RecordService;
 | 
					import top.suyiiyii.sims.service.RecordService;
 | 
				
			||||||
import top.suyiiyii.sims.service.RoleService;
 | 
					import top.suyiiyii.sims.service.RoleService;
 | 
				
			||||||
import top.suyiiyii.sims.service.UserService;
 | 
					import top.suyiiyii.sims.service.UserService;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.utils.JwtUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
@ -98,6 +101,7 @@ RecordController {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @AuthAccess(allowRoles = {"admin"})
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
    @Operation(summary = "添加奖惩记录")
 | 
					    @Operation(summary = "添加奖惩记录")
 | 
				
			||||||
    @PostMapping("/admin/record")
 | 
					    @PostMapping("/admin/record")
 | 
				
			||||||
@ -121,7 +125,6 @@ RecordController {
 | 
				
			|||||||
            @RequestParam(defaultValue = "0") int page,
 | 
					            @RequestParam(defaultValue = "0") int page,
 | 
				
			||||||
            @RequestParam(defaultValue = "10") int size,
 | 
					            @RequestParam(defaultValue = "10") int size,
 | 
				
			||||||
            SearchRequest searchRequest) {
 | 
					            SearchRequest searchRequest) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
        Integer s1;
 | 
					        Integer s1;
 | 
				
			||||||
        List<Integer> studentIds = new ArrayList<>();
 | 
					        List<Integer> studentIds = new ArrayList<>();
 | 
				
			||||||
        List<Record> records=new ArrayList<>();
 | 
					        List<Record> records=new ArrayList<>();
 | 
				
			||||||
@ -169,16 +172,10 @@ RecordController {
 | 
				
			|||||||
            return Result.error("请选择正确奖惩类别");
 | 
					            return Result.error("请选择正确奖惩类别");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        List<Integer> idByCategoryName = categoryService.getIdByCategoryName(categoryName);
 | 
					        List<Integer> idByCategoryName = categoryService.getIdByCategoryName(categoryName);
 | 
				
			||||||
        for (Integer i : idByCategoryName) {
 | 
					 | 
				
			||||||
            List<Integer> sid = recordService.getSidByCategoryId(i);
 | 
					 | 
				
			||||||
            studentIds.addAll(sid);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        List<Record> records=new ArrayList<>();
 | 
					        List<Record> records=new ArrayList<>();
 | 
				
			||||||
        HashSet<Integer> studentIds1= new HashSet<>(studentIds);
 | 
					        for (Integer i : idByCategoryName) {
 | 
				
			||||||
        for (Integer Sid : studentIds1) {
 | 
					            List<Record> recordsByCategoryId = recordService.getRecordsByCategoryId(page, size, i);
 | 
				
			||||||
            if(Sid!=null){
 | 
					            records.addAll(recordsByCategoryId);
 | 
				
			||||||
                records.addAll(recordService.getRecordsById(page,size,Sid));
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
					        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
				
			||||||
        for (Record record : records) {
 | 
					        for (Record record : records) {
 | 
				
			||||||
@ -198,25 +195,20 @@ RecordController {
 | 
				
			|||||||
            @RequestParam(defaultValue = "10") int size,
 | 
					            @RequestParam(defaultValue = "10") int size,
 | 
				
			||||||
            String categoryName,HttpServletRequest request) {
 | 
					            String categoryName,HttpServletRequest request) {
 | 
				
			||||||
        int userId = JwtInterceptor.getUserIdFromReq(request);
 | 
					        int userId = JwtInterceptor.getUserIdFromReq(request);
 | 
				
			||||||
        List<Integer> studentIds = new ArrayList<>();
 | 
					 | 
				
			||||||
        //CategoryName不是奖励或者惩罚
 | 
					        //CategoryName不是奖励或者惩罚
 | 
				
			||||||
        if (!categoryName.equals("奖励")
 | 
					        if (!categoryName.equals("奖励")
 | 
				
			||||||
                && !categoryName.equals("惩罚")) {
 | 
					                && !categoryName.equals("惩罚")) {
 | 
				
			||||||
            return Result.error("请选择正确奖惩类别");
 | 
					            return Result.error("请选择正确奖惩类别");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        Integer studentId = userService.getStudentIdByUserId(userId);
 | 
				
			||||||
        List<Integer> idByCategoryName = categoryService.getIdByCategoryName(categoryName);
 | 
					        List<Integer> idByCategoryName = categoryService.getIdByCategoryName(categoryName);
 | 
				
			||||||
        for (Integer i : idByCategoryName) {
 | 
					 | 
				
			||||||
            List<Integer> sid = recordService.getSidByCategoryId(i);
 | 
					 | 
				
			||||||
            if(sid!=null) {
 | 
					 | 
				
			||||||
                studentIds.addAll(sid);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        List<Record> records=new ArrayList<>();
 | 
					        List<Record> records=new ArrayList<>();
 | 
				
			||||||
        HashSet<Integer> studentIds1= new HashSet<>(studentIds);
 | 
					        for (Integer i : idByCategoryName) {
 | 
				
			||||||
        for (Integer Sid : studentIds1) {
 | 
					            List<Record> records1 = recordService.getRecordsByCategoryId(page, size, i);
 | 
				
			||||||
            Integer studentId1 =userService.getStudentIdByUserId(userId);
 | 
					            for (Record record : records1) {
 | 
				
			||||||
            if (studentId1!= null && studentId1.equals(Sid)) {
 | 
					                if (record.getStudentId()==studentId) {
 | 
				
			||||||
                records.addAll(recordService.getRecordsById(page, size, Sid));
 | 
					                    records.add(record);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
					        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,30 @@
 | 
				
			|||||||
package top.suyiiyii.sims.controller;
 | 
					package top.suyiiyii.sims.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.Operation;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
 | 
					import io.swagger.v3.oas.annotations.responses.ApiResponse;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
 | 
					import io.swagger.v3.oas.annotations.responses.ApiResponses;
 | 
				
			||||||
 | 
					import jakarta.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.modelmapper.ModelMapper;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RestController;
 | 
					import top.suyiiyii.sims.common.AuthAccess;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.common.JwtInterceptor;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.common.Result;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.CommonResponse;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.RecordDto;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.RevokeRequestDto;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.RevokeRequest;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.exception.ServiceException;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.service.CategoryService;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.service.NotificationService;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.service.RecordService;
 | 
				
			||||||
import top.suyiiyii.sims.service.RevokedService;
 | 
					import top.suyiiyii.sims.service.RevokedService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
 * @Date 2024/9/6 10:03
 | 
					 * @Date 2024/9/6 10:03
 | 
				
			||||||
@ -22,9 +39,97 @@ import top.suyiiyii.sims.service.RevokedService;
 | 
				
			|||||||
public class RevokedController {
 | 
					public class RevokedController {
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    RevokedService revokedService;
 | 
					    RevokedService revokedService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    ModelMapper modelMapper;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    NotificationService notificationService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    CategoryService categoryService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    RecordService recordService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //TODO 普通成员向管理员申请撤销
 | 
					    //TODO 普通成员向管理员申请撤销
 | 
				
			||||||
 | 
					    @AuthAccess(allowRoles = {"user"})
 | 
				
			||||||
 | 
					    @Operation(summary = "成员申请撤销")
 | 
				
			||||||
 | 
					    @PostMapping("")
 | 
				
			||||||
 | 
					    public Result<CommonResponse> revoked(@RequestBody Request request) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(request.getReason().isBlank()) {
 | 
				
			||||||
 | 
					            throw new ServiceException("撤销原因不能为空");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        RevokeRequest revokeRequest = modelMapper.map(request, RevokeRequest.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        revokedService.addRevokeRequest(revokeRequest);
 | 
				
			||||||
 | 
					        //发送通知给管理员
 | 
				
			||||||
 | 
					        notificationService.addNotification(revokeRequest);
 | 
				
			||||||
 | 
					        return Result.success(CommonResponse.factory("申请成功"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    //TODO 管理员查看所有撤销申请
 | 
					    //TODO 管理员查看所有撤销申请
 | 
				
			||||||
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
 | 
					    @Operation(summary = "管理员查看所有撤销申请")
 | 
				
			||||||
 | 
					    @GetMapping("")
 | 
				
			||||||
 | 
					    public Result<List<RevokeRequestDto>> revoked(
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "0") int page,
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "10") int size) {
 | 
				
			||||||
 | 
					        List<RevokeRequest> revokeRequests = revokedService.getAll(page, size);
 | 
				
			||||||
 | 
					        List<RevokeRequestDto> revokeRequestDtos = new ArrayList<>();
 | 
				
			||||||
 | 
					        for (RevokeRequest revokeRequest : revokeRequests) {
 | 
				
			||||||
 | 
					            RevokeRequestDto revokeRequestDto = modelMapper.map(revokeRequest, RevokeRequestDto.class);
 | 
				
			||||||
 | 
					            revokeRequestDto.setCategoryName(categoryService.getCategoryName(recordService.getCategoryIdById(revokeRequest.getRecordId())));
 | 
				
			||||||
 | 
					            revokeRequestDto.setSubCategoryName(categoryService.getsubCategoryName(recordService.getCategoryIdById(revokeRequest.getRecordId())));
 | 
				
			||||||
 | 
					            revokeRequestDtos.add(revokeRequestDto);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return Result.success(revokeRequestDtos);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    //TODO 管理员可以撤销某一成员的奖励或惩罚记录,需填写撤销原因,撤销备注
 | 
					    //TODO 管理员可以撤销某一成员的奖励或惩罚记录,需填写撤销原因,撤销备注
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
 | 
					    @Operation(summary = "管理员处理撤销申请",description = "status:批准/拒绝")
 | 
				
			||||||
 | 
					    @PutMapping("/{id}")
 | 
				
			||||||
 | 
					    public Result<CommonResponse> revoked(@PathVariable Integer id, RevokedRequest revokedRequest, HttpServletRequest request) {
 | 
				
			||||||
 | 
					        String userId = String.valueOf(JwtInterceptor.getUserIdFromReq(request));
 | 
				
			||||||
 | 
					        if(revokedRequest.getAdminRemark().isBlank()) {
 | 
				
			||||||
 | 
					            throw new ServiceException("撤销备注不能为空");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if(!"批准".equals(revokedRequest.getStatus()) && !"拒绝".equals(revokedRequest.getStatus()) ) {
 | 
				
			||||||
 | 
					            throw new ServiceException("状态不合法");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        revokedService.updateRevokeRequest(id,
 | 
				
			||||||
 | 
					                revokedRequest.getStatus(),revokedRequest.getAdminRemark(),
 | 
				
			||||||
 | 
					                revokedRequest.getReason(),revokedRequest.getHandleTime());
 | 
				
			||||||
 | 
					            //TODO 要加到记录里面去
 | 
				
			||||||
 | 
					        if ("批准".equals(revokedRequest.getStatus())) {
 | 
				
			||||||
 | 
					            revokedService.addRevokedRecord(id,userId,revokedRequest.getReason(),revokedRequest.getHandleTime());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return Result.success(CommonResponse.factory("修改成功"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
 | 
					    @Operation(summary = "撤销单个奖惩记录")
 | 
				
			||||||
 | 
					    @DeleteMapping("/admin/records/{id}")
 | 
				
			||||||
 | 
					    public Result<CommonResponse> adminDeleteRecord(@PathVariable Integer id, String reason,String remark, HttpServletRequest request) {
 | 
				
			||||||
 | 
					        Integer i = recordService.IsRecord(id);
 | 
				
			||||||
 | 
					        String userId = String.valueOf(JwtInterceptor.getUserIdFromReq(request));
 | 
				
			||||||
 | 
					        if(i==null) {
 | 
				
			||||||
 | 
					            throw new RuntimeException("该记录不存在");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        recordService.revokeUpdate(id,reason,remark,userId);
 | 
				
			||||||
 | 
					        return Result.msg("撤销成功");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Data
 | 
				
			||||||
 | 
					    public static class Request {
 | 
				
			||||||
 | 
					        private Integer userId;
 | 
				
			||||||
 | 
					        private Integer recordId;
 | 
				
			||||||
 | 
					        private String reason;
 | 
				
			||||||
 | 
					        private Long requestTime;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @Data
 | 
				
			||||||
 | 
					    public static class RevokedRequest {
 | 
				
			||||||
 | 
					        private String status;
 | 
				
			||||||
 | 
					        private String adminRemark;
 | 
				
			||||||
 | 
					        private String reason;
 | 
				
			||||||
 | 
					        private Long handleTime;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										32
									
								
								src/main/java/top/suyiiyii/sims/dto/RevokeRequestDto.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/main/java/top/suyiiyii/sims/dto/RevokeRequestDto.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/8 21:34
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.dto
 | 
				
			||||||
 | 
					 * @ClassName: RevokeRequestDto
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@AllArgsConstructor
 | 
				
			||||||
 | 
					@NoArgsConstructor
 | 
				
			||||||
 | 
					public class RevokeRequestDto {
 | 
				
			||||||
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					    private String categoryName;
 | 
				
			||||||
 | 
					    private String subCategoryName;
 | 
				
			||||||
 | 
					    private Integer userId;
 | 
				
			||||||
 | 
					    private String reason;
 | 
				
			||||||
 | 
					    private Long requestTime;
 | 
				
			||||||
 | 
					    private String status;
 | 
				
			||||||
 | 
					    //处理时间
 | 
				
			||||||
 | 
					    private Long handleTime;
 | 
				
			||||||
 | 
					    private String adminRemark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -27,7 +27,7 @@ public class Notification {
 | 
				
			|||||||
    private String title;
 | 
					    private String title;
 | 
				
			||||||
    private String content;
 | 
					    private String content;
 | 
				
			||||||
    private Integer senderId;
 | 
					    private Integer senderId;
 | 
				
			||||||
    private LocalDateTime createdAt;
 | 
					    private Long createdAt;
 | 
				
			||||||
    private String status;
 | 
					    private String status;
 | 
				
			||||||
    private String type;
 | 
					    private String type;
 | 
				
			||||||
    private Integer targetUserId;
 | 
					    private Integer targetUserId;
 | 
				
			||||||
 | 
				
			|||||||
@ -27,10 +27,10 @@ public class RevokeRequest {
 | 
				
			|||||||
    private Integer recordId;
 | 
					    private Integer recordId;
 | 
				
			||||||
    private Integer userId;
 | 
					    private Integer userId;
 | 
				
			||||||
    private String reason;
 | 
					    private String reason;
 | 
				
			||||||
    private LocalDateTime requestTime;
 | 
					    private Long requestTime;
 | 
				
			||||||
    private String status;
 | 
					    private String status;
 | 
				
			||||||
    //处理时间
 | 
					    //处理时间
 | 
				
			||||||
    private LocalDateTime handleTime;
 | 
					    private Long handleTime;
 | 
				
			||||||
    private String adminRemark;
 | 
					    private String adminRemark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -31,7 +31,7 @@ public class RevokedRecord {
 | 
				
			|||||||
    // 撤销原因
 | 
					    // 撤销原因
 | 
				
			||||||
    private String reason;
 | 
					    private String reason;
 | 
				
			||||||
    // 撤销时间
 | 
					    // 撤销时间
 | 
				
			||||||
    private LocalDateTime revokedTime;
 | 
					    private Long revokedTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,15 @@
 | 
				
			|||||||
package top.suyiiyii.sims.mapper;
 | 
					package top.suyiiyii.sims.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
import top.suyiiyii.sims.entity.RevokedRecord;
 | 
					import top.suyiiyii.sims.entity.Notification;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
 * @Date 2024/9/6 10:04
 | 
					 * @Date 2024/9/8 20:50
 | 
				
			||||||
 * @PackageName:top.suyiiyii.sims.mapper
 | 
					 * @PackageName:top.suyiiyii.sims.mapper
 | 
				
			||||||
 * @ClassName: MpRevRecordMapper
 | 
					 * @ClassName: MpNotificationMapper
 | 
				
			||||||
 * @Description: TODO
 | 
					 * @Description: TODO
 | 
				
			||||||
 * @Version 1.0
 | 
					 * @Version 1.0
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public interface MpRevRecordMapper extends BaseMapper<RevokedRecord> {
 | 
					public interface MpNotificationMapper extends BaseMapper<Notification> {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								src/main/java/top/suyiiyii/sims/mapper/MpRevRecord.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/main/java/top/suyiiyii/sims/mapper/MpRevRecord.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Insert;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Update;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.RevokeRequest;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.RevokedRecord;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/9 10:08
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.mapper
 | 
				
			||||||
 | 
					 * @ClassName: MpRevRecord
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface MpRevRecord extends BaseMapper<RevokedRecord> {
 | 
				
			||||||
 | 
					    @Insert("INSERT INTO revoked_record (admin_id, reason, revoked_time, record_id) VALUES (#{userId}, #{reason}, #{handleTime}, #{id})")
 | 
				
			||||||
 | 
					    void addRevokedRecord(Integer id, String userId, String reason, Long handleTime);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Select;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Update;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.RevokeRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/6 10:04
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.mapper
 | 
				
			||||||
 | 
					 * @ClassName: MpRevRequestMapper
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface MpRevRequestMapper extends BaseMapper<RevokeRequest> {
 | 
				
			||||||
 | 
					    @Select("select * from revoke_request limit #{page},#{size}")
 | 
				
			||||||
 | 
					    List<RevokeRequest> selectList(int page, int size);
 | 
				
			||||||
 | 
					@Update("update revoke_request set status=#{status},admin_remark=#{adminRemark} where id=#{id}")
 | 
				
			||||||
 | 
					    void update(Integer id, String status, String adminRemark);
 | 
				
			||||||
 | 
					@Update("update revoke_request set status=#{status},admin_remark=#{adminRemark},reason=#{reason},handle_time=#{handleTime} where id=#{id}")
 | 
				
			||||||
 | 
					    void update(Integer id, String status, String adminRemark, String reason, Long handleTime);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -81,4 +81,12 @@ public interface RecordMapper {
 | 
				
			|||||||
    List<Record> getRecordsById(int page, int size, Integer sid);
 | 
					    List<Record> getRecordsById(int page, int size, Integer sid);
 | 
				
			||||||
@Select("SELECT id FROM record WHERE id = #{id}")
 | 
					@Select("SELECT id FROM record WHERE id = #{id}")
 | 
				
			||||||
    Integer IsRecord(Integer id);
 | 
					    Integer IsRecord(Integer id);
 | 
				
			||||||
 | 
					@Select("SELECT category_id FROM record WHERE id = #{id}")
 | 
				
			||||||
 | 
					    Integer getCategoryIdById(Integer id);
 | 
				
			||||||
 | 
					@Update("UPDATE record SET is_revoked=#{isRevoked},operator_user_id=#{userId},revoke_remark = #{adminRemark}, revoke_reason = #{reason}, lsat_update_time = #{handleTime} WHERE id = #{id}")
 | 
				
			||||||
 | 
					    void update(Integer id ,Boolean isRevoked,String userId, String adminRemark, String reason, Long handleTime);
 | 
				
			||||||
 | 
					@Update("UPDATE record SET is_revoked=#{isRevoked},operator_user_id=#{userId},revoke_remark = #{remark}, revoke_reason = #{reason} WHERE id = #{id}")
 | 
				
			||||||
 | 
					    void Rupdate(Integer id,Boolean isRevoked,String reason,String remark , String userId);
 | 
				
			||||||
 | 
					@Select("SELECT * FROM record WHERE category_id = #{i} LIMIT #{page},#{size}")
 | 
				
			||||||
 | 
					    List<Record> getRecordsByCategoryId(int page, int size, Integer i);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.checkerframework.checker.units.qual.A;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.Notification;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.RevokeRequest;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.mapper.MpNotificationMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/8 20:50
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.service
 | 
				
			||||||
 | 
					 * @ClassName: NotificationService
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class NotificationService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    MpNotificationMapper mpNotificationMapper;
 | 
				
			||||||
 | 
					    public void addNotification(RevokeRequest revokeRequest) {
 | 
				
			||||||
 | 
					        Notification notification = new Notification();
 | 
				
			||||||
 | 
					        notification.setSenderId(revokeRequest.getUserId());
 | 
				
			||||||
 | 
					        notification.setTitle("申请撤销");
 | 
				
			||||||
 | 
					        notification.setContent(revokeRequest.getReason());
 | 
				
			||||||
 | 
					        notification.setType("申请");
 | 
				
			||||||
 | 
					        notification.setCreatedAt(revokeRequest.getRequestTime());
 | 
				
			||||||
 | 
					        notification.setStatus("未处理");
 | 
				
			||||||
 | 
					        notification.setTargetUserId(-1);
 | 
				
			||||||
 | 
					        mpNotificationMapper.insert(notification);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -4,6 +4,7 @@ package top.suyiiyii.sims.service;
 | 
				
			|||||||
import org.modelmapper.ModelMapper;
 | 
					import org.modelmapper.ModelMapper;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import top.suyiiyii.sims.dto.RecordDto;
 | 
					import top.suyiiyii.sims.dto.RecordDto;
 | 
				
			||||||
import top.suyiiyii.sims.entity.Record;
 | 
					import top.suyiiyii.sims.entity.Record;
 | 
				
			||||||
import top.suyiiyii.sims.entity.RewardPunishmentCategory;
 | 
					import top.suyiiyii.sims.entity.RewardPunishmentCategory;
 | 
				
			||||||
@ -63,7 +64,7 @@ public class RecordService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        //查看数据库里面是否有这个类别
 | 
					        //查看数据库里面是否有这个类别
 | 
				
			||||||
        String subCategoryName = categoryMapper.IsSubCategoryName(recordDto.getSubCategoryName());
 | 
					        String subCategoryName = categoryMapper.IsSubCategoryName(recordDto.getSubCategoryName());
 | 
				
			||||||
        if (subCategoryName == null) {
 | 
					        if(subCategoryName == null) {
 | 
				
			||||||
            //没有这个类别就加上
 | 
					            //没有这个类别就加上
 | 
				
			||||||
            categoryMapper.addsubcategory(recordDto.getCategoryName(), recordDto.getSubCategoryName());
 | 
					            categoryMapper.addsubcategory(recordDto.getCategoryName(), recordDto.getSubCategoryName());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -75,11 +76,12 @@ public class RecordService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<Record> getRecordsLike(int page, int size, Integer studentId, String userGroup, String grade) {
 | 
					    public List<Record> getRecordsLike(int page, int size, Integer studentId, String userGroup, String grade) {
 | 
				
			||||||
        return recordMapper.getRecordsLike(page, size, studentId, userGroup, grade);
 | 
					        return recordMapper.getRecordsLike(page, size, studentId, userGroup,grade);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<Integer> getSidByCategoryId(Integer i) {
 | 
					
 | 
				
			||||||
 | 
					    public  List<Integer> getSidByCategoryId(Integer i) {
 | 
				
			||||||
        return recordMapper.getSidByCategoryId(i);
 | 
					        return recordMapper.getSidByCategoryId(i);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -106,4 +108,22 @@ public class RecordService {
 | 
				
			|||||||
        List<Integer> availableCatIds = catIds.stream().filter(c -> (catMap.containsKey(c) && (catMap.get(c).getStatus() == null || catMap.get(c).getStatus().equals("enable")))).toList();
 | 
					        List<Integer> availableCatIds = catIds.stream().filter(c -> (catMap.containsKey(c) && (catMap.get(c).getStatus() == null || catMap.get(c).getStatus().equals("enable")))).toList();
 | 
				
			||||||
        return recordDtos.stream().filter(r -> availableCatIds.contains(r.getCategoryId())).toList();
 | 
					        return recordDtos.stream().filter(r -> availableCatIds.contains(r.getCategoryId())).toList();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void update(Integer id, String userId, String adminRemark, String reason, Long handleTime) {
 | 
				
			||||||
 | 
					        Boolean isRevoked=true;
 | 
				
			||||||
 | 
					        recordMapper.update(id, isRevoked,userId, adminRemark, reason, handleTime);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void revokeUpdate(Integer id, String reason,String remark,String userId) {
 | 
				
			||||||
 | 
					        Boolean isRevoked=true;
 | 
				
			||||||
 | 
					        recordMapper.Rupdate(id, isRevoked,reason,remark,userId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getCategoryIdById(Integer  id) {
 | 
				
			||||||
 | 
					        return recordMapper.getCategoryIdById(id);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<Record> getRecordsByCategoryId(int page, int size, Integer i) {
 | 
				
			||||||
 | 
					        return recordMapper.getRecordsByCategoryId(page, size, i);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,14 @@ package top.suyiiyii.sims.service;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
import top.suyiiyii.sims.mapper.MpRevRecordMapper;
 | 
					import top.suyiiyii.sims.controller.RevokedController;
 | 
				
			||||||
import top.suyiiyii.sims.mapper.RoleMapper;
 | 
					import top.suyiiyii.sims.entity.RevokeRequest;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.mapper.MpRevRecord;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.mapper.MpRevRequestMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
@ -15,6 +21,27 @@ import top.suyiiyii.sims.mapper.RoleMapper;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class RevokedService {
 | 
					public class RevokedService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    MpRevRecordMapper mpRevRecordMapper;
 | 
					    MpRevRequestMapper mpRevRequestMapper;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    MpRevRecord mpRevRecord;
 | 
				
			||||||
 | 
					    public void addRevokeRequest(RevokeRequest revokeRequest) {
 | 
				
			||||||
 | 
					        revokeRequest.setStatus("待审核");
 | 
				
			||||||
 | 
					        mpRevRequestMapper.insert(revokeRequest);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					        public List<RevokeRequest> getAll(int page, int size){
 | 
				
			||||||
 | 
					        return mpRevRequestMapper.selectList(page,size);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void updateRevokeRequest(Integer id, String status, String adminRemark, String reason, Long handleTime) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mpRevRequestMapper.update(id, status, adminRemark, reason, handleTime);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void addRevokedRecord(Integer id, String userId, String reason, Long handleTime) {
 | 
				
			||||||
 | 
					        mpRevRecord.addRevokedRecord(id, userId, reason, handleTime);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user