mirror of
https://github.com/suyiiyii/SIMS.git
synced 2025-06-03 12:56:10 +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>
|
<groupId>org.springframework.session</groupId>
|
||||||
<artifactId>spring-session-core</artifactId>
|
<artifactId>spring-session-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.modelmapper</groupId>
|
||||||
|
<artifactId>modelmapper</artifactId>
|
||||||
|
<version>2.3.9</version> <!-- 请确认最新版本 -->
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.mysql</groupId>
|
<groupId>com.mysql</groupId>
|
||||||
<artifactId>mysql-connector-j</artifactId>
|
<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 io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import org.modelmapper.ModelMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -27,6 +28,7 @@ import top.suyiiyii.sims.utils.JwtUtils;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class
|
public class
|
||||||
@ -39,48 +41,23 @@ RecordController {
|
|||||||
RoleService roleService;
|
RoleService roleService;
|
||||||
@Autowired
|
@Autowired
|
||||||
CategoryService categoryService;
|
CategoryService categoryService;
|
||||||
|
@Autowired
|
||||||
|
ModelMapper modelMapper;
|
||||||
|
|
||||||
@Operation(summary = "获取所有奖惩记录")
|
@Operation(summary = "获取所有奖惩记录")
|
||||||
@GetMapping("/admin/record")
|
@GetMapping("/admin/record")
|
||||||
public Result<List<RecordDto>> adminRecord(
|
public Result<List<RecordDto>> adminRecord(
|
||||||
@RequestParam(defaultValue = "0") int page,
|
@RequestParam(defaultValue = "0") int page,
|
||||||
@RequestParam(defaultValue = "10") int size) {
|
@RequestParam(defaultValue = "10") int size) {
|
||||||
List<RecordDto> recordDtos=new ArrayList<>();
|
|
||||||
|
|
||||||
List<Record> records = recordService.getAllRecords(page, size);
|
List<Record> records = recordService.getAllRecords(page, size);
|
||||||
|
List<RecordDto> recordDtos = new ArrayList<>();
|
||||||
for (Record record : records) {
|
for (Record record : records) {
|
||||||
RecordDto recordDto = new RecordDto();
|
|
||||||
Integer studentId=record.getStudentId();
|
RecordDto recordDto = modelMapper.map(record, RecordDto.class);
|
||||||
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.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
|
recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
|
||||||
recordDto.setSubCategoryName(categoryService.getsubCategoryName(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());
|
|
||||||
recordDtos.add(recordDto);
|
recordDtos.add(recordDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return Result.success(recordDtos);
|
return Result.success(recordDtos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,34 +72,12 @@ RecordController {
|
|||||||
|
|
||||||
List<Record> records = recordService.getMyAllRecords(page, size,userId);
|
List<Record> records = recordService.getMyAllRecords(page, size,userId);
|
||||||
for (Record record : records) {
|
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.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
|
||||||
recordDto.setSubCategoryName(categoryService.getsubCategoryName(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());
|
|
||||||
recordDtos.add(recordDto);
|
recordDtos.add(recordDto);
|
||||||
}
|
}
|
||||||
return Result.success(recordDtos);
|
return Result.success(recordDtos);
|
||||||
@ -132,14 +87,15 @@ RecordController {
|
|||||||
@Operation(summary = "更新单个奖惩记录")
|
@Operation(summary = "更新单个奖惩记录")
|
||||||
@PutMapping("/admin/record/{id}")
|
@PutMapping("/admin/record/{id}")
|
||||||
public Result<CommonResponse> adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) {
|
public Result<CommonResponse> adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) {
|
||||||
|
Record record = modelMapper.map(recordDto, Record.class);
|
||||||
|
recordService.updateRecord(record,id);
|
||||||
return Result.msg("修改成功");
|
return Result.msg("修改成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "删除单个奖惩记录")
|
@Operation(summary = "删除单个奖惩记录")
|
||||||
@DeleteMapping("/admin/record/{id}")
|
@DeleteMapping("/admin/record/{id}")
|
||||||
public Result<CommonResponse> adminDeleteRecord(@PathVariable Integer id) {
|
public Result<CommonResponse> adminDeleteRecord(@PathVariable Integer id) {
|
||||||
|
recordService.deleteRecord(id);
|
||||||
return Result.msg("删除成功");
|
return Result.msg("删除成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,9 +103,14 @@ RecordController {
|
|||||||
@Operation(summary = "添加奖惩记录")
|
@Operation(summary = "添加奖惩记录")
|
||||||
@PostMapping("/admin/record")
|
@PostMapping("/admin/record")
|
||||||
public Result<CommonResponse> adminAddRecord(@RequestBody RecordDto recordDto) {
|
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("添加成功");
|
return Result.msg("添加成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,19 +15,12 @@ public class RecordDto {
|
|||||||
// 用户ID
|
// 用户ID
|
||||||
private Integer studentId;
|
private Integer studentId;
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String grade;
|
|
||||||
|
|
||||||
private String group;
|
|
||||||
|
|
||||||
private List<String> roles;
|
|
||||||
|
|
||||||
private String categoryName;
|
private String categoryName;
|
||||||
|
|
||||||
private String subCategoryName;
|
private String subCategoryName;
|
||||||
// 奖惩日期
|
// 奖惩日期
|
||||||
private LocalDateTime date;
|
private Long date;
|
||||||
// 奖惩内容
|
// 奖惩内容
|
||||||
private String content;
|
private String content;
|
||||||
// 奖惩原因
|
// 奖惩原因
|
||||||
@ -39,7 +32,7 @@ public class RecordDto {
|
|||||||
// 是否撤销
|
// 是否撤销
|
||||||
private Boolean isRevoked;
|
private Boolean isRevoked;
|
||||||
// 撤销日期
|
// 撤销日期
|
||||||
private LocalDateTime revokeDate;
|
private Long revokeDate;
|
||||||
// 撤销原因
|
// 撤销原因
|
||||||
private String revokeReason;
|
private String revokeReason;
|
||||||
// 撤销备注
|
// 撤销备注
|
||||||
@ -47,5 +40,5 @@ public class RecordDto {
|
|||||||
// 操作人ID
|
// 操作人ID
|
||||||
private Integer operatorUserId;
|
private Integer operatorUserId;
|
||||||
// 最近一次更新时间
|
// 最近一次更新时间
|
||||||
private LocalDateTime lastUpdateTime;
|
private Long lastUpdateTime;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package top.suyiiyii.sims.entity;
|
package top.suyiiyii.sims.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.tangzc.mpe.autotable.annotation.Table;
|
import com.tangzc.mpe.autotable.annotation.Table;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -21,15 +22,15 @@ import java.time.LocalDateTime;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class Record {
|
public class Record {
|
||||||
@TableId("id")
|
@TableId(type = IdType.AUTO)
|
||||||
|
//自增
|
||||||
private Integer id;
|
private Integer id;
|
||||||
// 用户ID
|
// 用户ID
|
||||||
private Integer StudentId;
|
private Integer StudentId;
|
||||||
|
|
||||||
// 奖惩类别ID
|
// 奖惩类别ID
|
||||||
private Integer categoryId;
|
private Integer categoryId;
|
||||||
// 奖惩日期
|
// 奖惩日期
|
||||||
private LocalDateTime date;
|
private Long date;
|
||||||
// 奖惩内容
|
// 奖惩内容
|
||||||
private String content;
|
private String content;
|
||||||
// 奖惩原因
|
// 奖惩原因
|
||||||
@ -41,7 +42,7 @@ public class Record {
|
|||||||
// 是否撤销
|
// 是否撤销
|
||||||
private Boolean isRevoked;
|
private Boolean isRevoked;
|
||||||
// 撤销日期
|
// 撤销日期
|
||||||
private LocalDateTime revokeDate;
|
private Long revokeDate;
|
||||||
// 撤销原因
|
// 撤销原因
|
||||||
private String revokeReason;
|
private String revokeReason;
|
||||||
// 撤销备注
|
// 撤销备注
|
||||||
@ -49,7 +50,7 @@ public class Record {
|
|||||||
// 操作人ID
|
// 操作人ID
|
||||||
private Integer operatorUserId;
|
private Integer operatorUserId;
|
||||||
// 最近一次更新时间
|
// 最近一次更新时间
|
||||||
private LocalDateTime lastUpdateTime;
|
private Long lastUpdateTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ public interface CategoryMapper {
|
|||||||
String getCategoryName(Integer categoryId);
|
String getCategoryName(Integer categoryId);
|
||||||
|
|
||||||
@Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{categoryId}")
|
@Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{categoryId}")
|
||||||
|
|
||||||
String getSubCategoryName(Integer 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;
|
package top.suyiiyii.sims.mapper;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.*;
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
import top.suyiiyii.sims.dto.RecordDto;
|
import top.suyiiyii.sims.dto.RecordDto;
|
||||||
import top.suyiiyii.sims.entity.Record;
|
import top.suyiiyii.sims.entity.Record;
|
||||||
|
|
||||||
@ -24,4 +22,31 @@ public interface RecordMapper {
|
|||||||
//根据学号分页查询所以信息
|
//根据学号分页查询所以信息
|
||||||
@Select("select * from record where student_id = #{id} limit #{page},#{size}")
|
@Select("select * from record where student_id = #{id} limit #{page},#{size}")
|
||||||
List<Record> getMyAllRecords(Integer page, Integer size, String id);
|
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) {
|
public String getsubCategoryName(Integer categoryId) {
|
||||||
return categoryMapper.getSubCategoryName(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);
|
String studentId = userMapper.getStudentIdById(userId);
|
||||||
return recordMapper.getMyAllRecords(page, size, studentId);
|
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