mirror of
				https://github.com/suyiiyii/SIMS.git
				synced 2025-11-04 15:54:52 +08:00 
			
		
		
		
	RecordController基本完成
This commit is contained in:
		
							parent
							
								
									17bc297b10
								
							
						
					
					
						commit
						a04c901b04
					
				
							
								
								
									
										5
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								pom.xml
									
									
									
									
									
								
							@ -49,6 +49,11 @@
 | 
			
		||||
            <groupId>org.springframework.session</groupId>
 | 
			
		||||
            <artifactId>spring-session-core</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.modelmapper</groupId>
 | 
			
		||||
            <artifactId>modelmapper</artifactId>
 | 
			
		||||
            <version>2.3.9</version> <!-- 请确认最新版本 -->
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>com.mysql</groupId>
 | 
			
		||||
            <artifactId>mysql-connector-j</artifactId>
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,44 @@
 | 
			
		||||
package top.suyiiyii.sims.common;
 | 
			
		||||
 | 
			
		||||
import org.modelmapper.ModelMapper;
 | 
			
		||||
import org.modelmapper.convention.MatchingStrategies;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import top.suyiiyii.sims.dto.RecordDto;
 | 
			
		||||
import top.suyiiyii.sims.entity.User;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Author tortoise
 | 
			
		||||
 * @Date 2024/8/20 21:19
 | 
			
		||||
 * @PackageName:top.suyiiyii.sims.common
 | 
			
		||||
 * @ClassName: ModelMapperConfig
 | 
			
		||||
 * @Description: TODO
 | 
			
		||||
 * @Version 1.0
 | 
			
		||||
 */
 | 
			
		||||
@Configuration
 | 
			
		||||
public class ModelMapperConfig {
 | 
			
		||||
    @Bean
 | 
			
		||||
    public ModelMapper modelMapper() {
 | 
			
		||||
        ModelMapper modelMapper = new ModelMapper();
 | 
			
		||||
        // 设置完全匹配
 | 
			
		||||
        modelMapper.getConfiguration().setFullTypeMatchingRequired(true);
 | 
			
		||||
 | 
			
		||||
        // 设置匹配策略为严格模式
 | 
			
		||||
        modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
 | 
			
		||||
      //  configureUser(modelMapper);
 | 
			
		||||
        return  modelMapper;
 | 
			
		||||
    }
 | 
			
		||||
    // 配置 User 类的映射规则
 | 
			
		||||
    private void configureUser(ModelMapper modelMapper) {
 | 
			
		||||
        // 定义 UserModel -> User 的映射规则
 | 
			
		||||
   //     modelMapper.typeMap(RecordDto.class, Record.class)
 | 
			
		||||
 | 
			
		||||
        // 跳过设置密码字段
 | 
			
		||||
        // 定义 User -> UserModel 的映射规则
 | 
			
		||||
      //  modelMapper.typeMap(User.class, RecordDto.class)
 | 
			
		||||
      //          .addMappings(mapper -> mapper.skip(RecordDto::setPassword))  // 跳过设置密码字段
 | 
			
		||||
      //          .addMappings(mapper -> mapper.map(User::getRealName, UserModel::setName)); // 将 User 的 realName 映射为 UserModel 的 name
 | 
			
		||||
//                .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getCreateTime, UserModel::setCreateTime))
 | 
			
		||||
//                .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getUpdateTime, UserModel::setUpdateTime));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -6,6 +6,7 @@ import com.auth0.jwt.interfaces.DecodedJWT;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
 | 
			
		||||
import jakarta.servlet.http.HttpServletRequest;
 | 
			
		||||
import org.modelmapper.ModelMapper;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
@ -27,6 +28,7 @@ import top.suyiiyii.sims.utils.JwtUtils;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
@RestController
 | 
			
		||||
public class
 | 
			
		||||
@ -39,48 +41,23 @@ RecordController {
 | 
			
		||||
    RoleService roleService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    CategoryService categoryService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ModelMapper modelMapper;
 | 
			
		||||
 | 
			
		||||
    @Operation(summary = "获取所有奖惩记录")
 | 
			
		||||
    @GetMapping("/admin/record")
 | 
			
		||||
    public Result<List<RecordDto>> adminRecord(
 | 
			
		||||
            @RequestParam(defaultValue = "0") int page,
 | 
			
		||||
            @RequestParam(defaultValue = "10") int size) {
 | 
			
		||||
        List<RecordDto> recordDtos=new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        List<Record> records = recordService.getAllRecords(page, size);
 | 
			
		||||
        List<RecordDto> recordDtos = new ArrayList<>();
 | 
			
		||||
        for (Record record : records) {
 | 
			
		||||
            RecordDto recordDto = new RecordDto();
 | 
			
		||||
            Integer studentId=record.getStudentId();
 | 
			
		||||
            recordDto.setStudentId(studentId);
 | 
			
		||||
            User user = UserService.selectByUserId(studentId);
 | 
			
		||||
            recordDto.setName(user.getUsername());
 | 
			
		||||
            recordDto.setGrade(user.getUserGroup());
 | 
			
		||||
            recordDto.setGroup(user.getUserGroup());
 | 
			
		||||
            List<Role> roles = UserService.selectRolesById(studentId);
 | 
			
		||||
            ArrayList<String> roleName = new ArrayList<>();
 | 
			
		||||
            for (Role role : roles) {
 | 
			
		||||
                roleName.add(role.getRoleName());
 | 
			
		||||
            }
 | 
			
		||||
            recordDto.setRoles(roleName);
 | 
			
		||||
 | 
			
		||||
            RecordDto recordDto = modelMapper.map(record, RecordDto.class);
 | 
			
		||||
            recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
			
		||||
            recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
			
		||||
            recordDto.setDate(record.getDate());
 | 
			
		||||
            recordDto.setContent(record.getContent());
 | 
			
		||||
            recordDto.setReason(record.getReason());
 | 
			
		||||
            recordDto.setContent(record.getContent());
 | 
			
		||||
            recordDto.setAmount(record.getAmount());
 | 
			
		||||
            recordDto.setRemark(record.getRemark());
 | 
			
		||||
            recordDto.setIsRevoked(record.getIsRevoked());
 | 
			
		||||
            // 撤销日期
 | 
			
		||||
            recordDto.setRevokeDate(record.getRevokeDate());
 | 
			
		||||
            recordDto.setRevokeReason(record.getRevokeReason());
 | 
			
		||||
            recordDto.setRevokeRemark(record.getRevokeRemark());
 | 
			
		||||
            recordDto.setOperatorUserId(record.getOperatorUserId());
 | 
			
		||||
            recordDto.setLastUpdateTime(record.getLastUpdateTime());
 | 
			
		||||
            recordDto.setSubCategoryName(categoryService.getsubCategoryName( record.getCategoryId()));
 | 
			
		||||
            recordDtos.add(recordDto);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        return Result.success(recordDtos);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -95,34 +72,12 @@ RecordController {
 | 
			
		||||
 | 
			
		||||
        List<Record> records = recordService.getMyAllRecords(page, size,userId);
 | 
			
		||||
        for (Record record : records) {
 | 
			
		||||
            RecordDto recordDto = new RecordDto();
 | 
			
		||||
            Integer studentId=record.getStudentId();
 | 
			
		||||
            recordDto.setStudentId(studentId);
 | 
			
		||||
            User user = UserService.selectByUserId(studentId);
 | 
			
		||||
            recordDto.setName(user.getUsername());
 | 
			
		||||
            recordDto.setGrade(user.getGrade());
 | 
			
		||||
            recordDto.setGroup(user.getUserGroup());
 | 
			
		||||
            List<Role> roles = UserService.selectRolesById(user.getId());
 | 
			
		||||
            ArrayList<String> roleName = new ArrayList<>();
 | 
			
		||||
            for (Role role : roles) {
 | 
			
		||||
                roleName.add(role.getRoleName());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            recordDto.setRoles(roleName);
 | 
			
		||||
            RecordDto recordDto = modelMapper.map(record, RecordDto.class);
 | 
			
		||||
 | 
			
		||||
            recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
			
		||||
            recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
			
		||||
            recordDto.setDate(record.getDate());
 | 
			
		||||
            recordDto.setContent(record.getContent());
 | 
			
		||||
            recordDto.setReason(record.getReason());
 | 
			
		||||
            recordDto.setAmount(record.getAmount());
 | 
			
		||||
            recordDto.setRemark(record.getRemark());
 | 
			
		||||
            recordDto.setIsRevoked(record.getIsRevoked());
 | 
			
		||||
            // 撤销日期
 | 
			
		||||
            recordDto.setRevokeDate(record.getRevokeDate());
 | 
			
		||||
            recordDto.setRevokeReason(record.getRevokeReason());
 | 
			
		||||
            recordDto.setRevokeRemark(record.getRevokeRemark());
 | 
			
		||||
            recordDto.setOperatorUserId(record.getOperatorUserId());
 | 
			
		||||
            recordDto.setLastUpdateTime(record.getLastUpdateTime());
 | 
			
		||||
            recordDto.setSubCategoryName(categoryService.getsubCategoryName( record.getCategoryId()));
 | 
			
		||||
 | 
			
		||||
            recordDtos.add(recordDto);
 | 
			
		||||
        }
 | 
			
		||||
        return Result.success(recordDtos);
 | 
			
		||||
@ -132,14 +87,15 @@ RecordController {
 | 
			
		||||
    @Operation(summary = "更新单个奖惩记录")
 | 
			
		||||
    @PutMapping("/admin/record/{id}")
 | 
			
		||||
    public Result<CommonResponse> adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) {
 | 
			
		||||
 | 
			
		||||
        Record record = modelMapper.map(recordDto, Record.class);
 | 
			
		||||
        recordService.updateRecord(record,id);
 | 
			
		||||
        return Result.msg("修改成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Operation(summary = "删除单个奖惩记录")
 | 
			
		||||
    @DeleteMapping("/admin/record/{id}")
 | 
			
		||||
    public Result<CommonResponse> adminDeleteRecord(@PathVariable Integer id) {
 | 
			
		||||
 | 
			
		||||
        recordService.deleteRecord(id);
 | 
			
		||||
        return Result.msg("删除成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -147,9 +103,14 @@ RecordController {
 | 
			
		||||
    @Operation(summary = "添加奖惩记录")
 | 
			
		||||
    @PostMapping("/admin/record")
 | 
			
		||||
    public Result<CommonResponse> adminAddRecord(@RequestBody RecordDto recordDto) {
 | 
			
		||||
 | 
			
		||||
        Integer categoryId = categoryService.getIdBySubCategoryName(recordDto.getSubCategoryName());
 | 
			
		||||
        Record record = modelMapper.map(recordDto, Record.class);
 | 
			
		||||
        if (categoryId == null) {
 | 
			
		||||
            Result.error("请选择奖惩类别,以及类型");
 | 
			
		||||
        }
 | 
			
		||||
        record.setCategoryId(categoryId);
 | 
			
		||||
        recordService.addRecord(record);
 | 
			
		||||
        return Result.msg("添加成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -15,19 +15,12 @@ public class RecordDto {
 | 
			
		||||
    // 用户ID
 | 
			
		||||
    private Integer studentId;
 | 
			
		||||
 | 
			
		||||
    private String name;
 | 
			
		||||
 | 
			
		||||
    private String grade;
 | 
			
		||||
 | 
			
		||||
    private String group;
 | 
			
		||||
 | 
			
		||||
    private List<String> roles;
 | 
			
		||||
 | 
			
		||||
    private String categoryName;
 | 
			
		||||
 | 
			
		||||
    private String subCategoryName;
 | 
			
		||||
    // 奖惩日期
 | 
			
		||||
    private LocalDateTime date;
 | 
			
		||||
    private Long date;
 | 
			
		||||
    // 奖惩内容
 | 
			
		||||
    private String content;
 | 
			
		||||
    // 奖惩原因
 | 
			
		||||
@ -39,7 +32,7 @@ public class RecordDto {
 | 
			
		||||
    // 是否撤销
 | 
			
		||||
    private Boolean isRevoked;
 | 
			
		||||
    // 撤销日期
 | 
			
		||||
    private LocalDateTime revokeDate;
 | 
			
		||||
    private Long revokeDate;
 | 
			
		||||
    // 撤销原因
 | 
			
		||||
    private String revokeReason;
 | 
			
		||||
    // 撤销备注
 | 
			
		||||
@ -47,5 +40,5 @@ public class RecordDto {
 | 
			
		||||
    // 操作人ID
 | 
			
		||||
    private Integer operatorUserId;
 | 
			
		||||
    // 最近一次更新时间
 | 
			
		||||
    private LocalDateTime lastUpdateTime;
 | 
			
		||||
    private Long lastUpdateTime;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
package top.suyiiyii.sims.entity;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.IdType;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
			
		||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
@ -21,15 +22,15 @@ import java.time.LocalDateTime;
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
public class Record {
 | 
			
		||||
    @TableId("id")
 | 
			
		||||
    @TableId(type = IdType.AUTO)
 | 
			
		||||
    //自增
 | 
			
		||||
    private Integer id;
 | 
			
		||||
    // 用户ID
 | 
			
		||||
    private Integer StudentId;
 | 
			
		||||
 | 
			
		||||
    // 奖惩类别ID
 | 
			
		||||
    private Integer categoryId;
 | 
			
		||||
    // 奖惩日期
 | 
			
		||||
    private LocalDateTime date;
 | 
			
		||||
    private Long date;
 | 
			
		||||
    // 奖惩内容
 | 
			
		||||
    private String content;
 | 
			
		||||
    // 奖惩原因
 | 
			
		||||
@ -41,7 +42,7 @@ public class Record {
 | 
			
		||||
    // 是否撤销
 | 
			
		||||
    private Boolean isRevoked;
 | 
			
		||||
    // 撤销日期
 | 
			
		||||
    private LocalDateTime revokeDate;
 | 
			
		||||
    private Long revokeDate;
 | 
			
		||||
    // 撤销原因
 | 
			
		||||
    private String revokeReason;
 | 
			
		||||
    // 撤销备注
 | 
			
		||||
@ -49,7 +50,7 @@ public class Record {
 | 
			
		||||
    // 操作人ID
 | 
			
		||||
    private Integer operatorUserId;
 | 
			
		||||
    // 最近一次更新时间
 | 
			
		||||
    private LocalDateTime lastUpdateTime;
 | 
			
		||||
    private Long lastUpdateTime;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,7 @@ public interface CategoryMapper {
 | 
			
		||||
    String getCategoryName(Integer categoryId);
 | 
			
		||||
 | 
			
		||||
    @Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{categoryId}")
 | 
			
		||||
 | 
			
		||||
        String getSubCategoryName(Integer categoryId);
 | 
			
		||||
@Select("SELECT category_id FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}")
 | 
			
		||||
    Integer getIdBySubCategoryName(String subCategoryName);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,6 @@
 | 
			
		||||
package top.suyiiyii.sims.mapper;
 | 
			
		||||
 | 
			
		||||
import org.apache.ibatis.annotations.Mapper;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
import org.apache.ibatis.annotations.Select;
 | 
			
		||||
import org.apache.ibatis.annotations.*;
 | 
			
		||||
import top.suyiiyii.sims.dto.RecordDto;
 | 
			
		||||
import top.suyiiyii.sims.entity.Record;
 | 
			
		||||
 | 
			
		||||
@ -24,4 +22,31 @@ public interface RecordMapper {
 | 
			
		||||
//根据学号分页查询所以信息
 | 
			
		||||
    @Select("select * from record where student_id = #{id} limit #{page},#{size}")
 | 
			
		||||
    List<Record> getMyAllRecords(Integer page, Integer size, String id);
 | 
			
		||||
 | 
			
		||||
    //根据id,更新对应信息
 | 
			
		||||
    @Update("UPDATE record SET "
 | 
			
		||||
 | 
			
		||||
            + "date = #{record.date}, "
 | 
			
		||||
            + "content = #{record.content}, "
 | 
			
		||||
            + "reason = #{record.reason}, "
 | 
			
		||||
            + "amount = #{record.amount}, "
 | 
			
		||||
            + "remark = #{record.remark}, "
 | 
			
		||||
            + "is_revoked = #{record.isRevoked}, "
 | 
			
		||||
            + "revoke_date = #{record.revokeDate}, "
 | 
			
		||||
            + "revoke_reason = #{record.revokeReason}, "
 | 
			
		||||
            + "revoke_remark = #{record.revokeRemark}, "
 | 
			
		||||
            + "operator_user_id = #{record.operatorUserId}, "
 | 
			
		||||
            + "last_update_time = #{record.lastUpdateTime} "
 | 
			
		||||
            + "WHERE id = #{id}")
 | 
			
		||||
    void updateRecord(Record record, Integer id);
 | 
			
		||||
 | 
			
		||||
    @Delete("delete from record where id = #{id}")
 | 
			
		||||
    void deleteRecord(Integer id);
 | 
			
		||||
    @Insert({
 | 
			
		||||
            "insert into record (student_id, category_id, `date`, content, reason, amount, remark, is_revoked,",
 | 
			
		||||
            "revoke_date, revoke_reason, revoke_remark, operator_user_id, last_update_time)",
 | 
			
		||||
            "VALUES (#{studentId}, #{categoryId}, #{date}, #{content}, #{reason}, #{amount}, #{remark}, #{isRevoked},",
 | 
			
		||||
            "#{revokeDate}, #{revokeReason}, #{revokeRemark}, #{operatorUserId}, #{lastUpdateTime})"
 | 
			
		||||
    })
 | 
			
		||||
    void addRecord(Record record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -25,4 +25,10 @@ public class CategoryService {
 | 
			
		||||
    public String getsubCategoryName(Integer categoryId) {
 | 
			
		||||
        return categoryMapper.getSubCategoryName(categoryId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public Integer getIdBySubCategoryName(String subCategoryName) {
 | 
			
		||||
        return categoryMapper.getIdBySubCategoryName(subCategoryName);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -36,4 +36,16 @@ public class RecordService {
 | 
			
		||||
        String studentId = userMapper.getStudentIdById(userId);
 | 
			
		||||
        return recordMapper.getMyAllRecords(page, size, studentId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void updateRecord(Record record, Integer id) {
 | 
			
		||||
        recordMapper.updateRecord(record, id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void deleteRecord(Integer id) {
 | 
			
		||||
        recordMapper.deleteRecord(id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addRecord(Record record) {
 | 
			
		||||
        recordMapper.addRecord(record);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user