diff --git a/src/main/java/club/joylink/rtss/controller/paper/PaperCompositionController.java b/src/main/java/club/joylink/rtss/controller/paper/PaperCompositionController.java index f863f58d4..d9988914b 100644 --- a/src/main/java/club/joylink/rtss/controller/paper/PaperCompositionController.java +++ b/src/main/java/club/joylink/rtss/controller/paper/PaperCompositionController.java @@ -34,7 +34,7 @@ public class PaperCompositionController { return compositionService.createPaperComposition(req, user); } /** - * 修改试卷蓝图基础信息(名称、项目、简介) + * 修改试卷蓝图基础信息 */ @PutMapping("/basic") public void updatePaperCompositionProfile(@RequestBody PaperCompositionBasicVo req, @RequestAttribute AccountVO user) { @@ -44,7 +44,7 @@ public class PaperCompositionController { /** * 修改试卷蓝图详细信息 */ - @PutMapping("/detail") + //@PutMapping("/detail") public void updatePaperCompositionDetail(@RequestBody PaperCompositionDetailVo req, @RequestAttribute AccountVO user) { compositionService.updatePaperCompositionDetail(req, user); } diff --git a/src/main/java/club/joylink/rtss/controller/permission2/AcPermissionController.java b/src/main/java/club/joylink/rtss/controller/permission2/AcPermissionController.java index 00eb3d08d..a575d92fe 100644 --- a/src/main/java/club/joylink/rtss/controller/permission2/AcPermissionController.java +++ b/src/main/java/club/joylink/rtss/controller/permission2/AcPermissionController.java @@ -69,8 +69,8 @@ public class AcPermissionController { * 获取一个权限的完整信息 */ @GetMapping("/{permissionId}/whole") - public WholePermissionRspVo findWholePermission() { - return null; + public WholePermissionRspVo findWholePermission(@PathVariable("permissionId") Long permissionId) { + return this.permissionService.findWholePermission(permissionId); } /** @@ -78,6 +78,6 @@ public class AcPermissionController { */ @PostMapping("/find/page") public PageVO findByPage(@RequestBody FindPermissionBasicByPageReqVo req) { - return null; + return this.permissionService.findByPage(req); } } diff --git a/src/main/java/club/joylink/rtss/services/paper/PaperCompositionService.java b/src/main/java/club/joylink/rtss/services/paper/PaperCompositionService.java index af678ee2c..4112572fc 100644 --- a/src/main/java/club/joylink/rtss/services/paper/PaperCompositionService.java +++ b/src/main/java/club/joylink/rtss/services/paper/PaperCompositionService.java @@ -14,6 +14,7 @@ import club.joylink.rtss.vo.AccountVO; import club.joylink.rtss.vo.client.PageVO; import club.joylink.rtss.vo.paper.*; import club.joylink.rtss.vo.paper.convertor.PaperCompositionConvertor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,6 +28,7 @@ import java.util.stream.Collectors; /** * 试卷蓝图业务 */ +@Slf4j @Service public class PaperCompositionService { @Autowired @@ -49,6 +51,10 @@ public class PaperCompositionService { newPc.setName(req.getName()); newPc.setOrgId(req.getOrgId()); newPc.setProfile(req.getProfile()); + newPc.setStartTime(req.getStartTime()); + newPc.setEndTime(req.getEndTime()); + newPc.setValidDuration(req.getValidDuration()); + newPc.setPassScore(req.getPassScore()); newPc.setCreateTime(LocalDateTime.now()); newPc.setUpdateTime(LocalDateTime.now()); newPc.setCreatorId(user.getId()); @@ -87,6 +93,10 @@ public class PaperCompositionService { curPc.setProfile(req.getProfile()); curPc.setOrgId(req.getOrgId()); curPc.setUpdateTime(LocalDateTime.now()); + curPc.setStartTime(req.getStartTime()); + curPc.setEndTime(req.getEndTime()); + curPc.setValidDuration(req.getValidDuration()); + curPc.setPassScore(req.getPassScore()); compositionDAO.updateByPrimaryKeySelective(curPc); } diff --git a/src/main/java/club/joylink/rtss/services/permission/AcPermissionService.java b/src/main/java/club/joylink/rtss/services/permission/AcPermissionService.java index 35a846e15..68ccb8fe9 100644 --- a/src/main/java/club/joylink/rtss/services/permission/AcPermissionService.java +++ b/src/main/java/club/joylink/rtss/services/permission/AcPermissionService.java @@ -6,17 +6,14 @@ import club.joylink.rtss.dao.permission.SystemAbilityDAO; import club.joylink.rtss.entity.permission.*; import club.joylink.rtss.exception.BusinessExceptionAssertEnum; import club.joylink.rtss.vo.AccountVO; -import club.joylink.rtss.vo.permission.CreatePermissionReqVo; -import club.joylink.rtss.vo.permission.PermissionAbilityDeletedReqVo; -import club.joylink.rtss.vo.permission.PermissionAbilityRspVo; -import club.joylink.rtss.vo.permission.UpdatePermissionBasicReqVo; +import club.joylink.rtss.vo.client.PageVO; +import club.joylink.rtss.vo.permission.*; +import club.joylink.rtss.vo.permission.convertor.PermissionConvertor; import club.joylink.rtss.vo.permission.convertor.SystemAbilityConvertor; -import org.apache.http.util.TextUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.ArrayList; @@ -86,6 +83,7 @@ public class AcPermissionService { // permissionDAO.updateByPrimaryKeySelective(update); } + /** * 给权限添加功能 * @@ -102,7 +100,7 @@ public class AcPermissionService { PermissionSystemAbilityExample psaExample = new PermissionSystemAbilityExample(); psaExample.createCriteria().andPermissionIdEqualTo(permissionId).andSystemAbilityIdEqualTo(abilityId); List psaFind = permissionSystemAbilityDAO.selectByExample(psaExample); - BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(CollectionUtils.isEmpty(psaFind),String.format("权限[id = %s]已经包含功能[id = %s]",permissionId,abilityId)); + BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(CollectionUtils.isEmpty(psaFind), String.format("权限[id = %s]已经包含功能[id = %s]", permissionId, abilityId)); // PermissionSystemAbility permissionAddAbility = new PermissionSystemAbility(); permissionAddAbility.setPermissionId(permissionId); @@ -110,6 +108,7 @@ public class AcPermissionService { // permissionSystemAbilityDAO.insertSelective(permissionAddAbility); } + /** * 获取权限的所有功能 * @@ -117,19 +116,9 @@ public class AcPermissionService { */ @Transactional(readOnly = true) public List findPermissionAbilities(Long permissionId) { - PermissionSystemAbilityExample psaExample = new PermissionSystemAbilityExample(); - psaExample.createCriteria().andPermissionIdEqualTo(permissionId); - List psaFind = permissionSystemAbilityDAO.selectByExample(psaExample); - if(!CollectionUtils.isEmpty(psaFind)){ - List abilityIds = psaFind.stream().map(PermissionSystemAbility::getSystemAbilityId).collect(Collectors.toList()); - SystemAbilityExample abilityExample = new SystemAbilityExample(); - abilityExample.createCriteria().andAbilityIdIn(abilityIds); - List abilityList = abilityDAO.selectByExample(abilityExample); - BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(abilityList.size()==abilityIds.size(),String.format("权限[id = %s]包含的功能的实体有些已经不存在",permissionId)); - return abilityList.stream().map(SystemAbilityConvertor::convertPermissionAbilityRspVoFrom).collect(Collectors.toList()); - } - return new ArrayList<>(); + return this.findAbilitiesByPermissionId(permissionId).stream().map(SystemAbilityConvertor::convertPermissionAbilityRspVoFrom).collect(Collectors.toList()); } + /** * 删除权限的功能,删除桥接表记录 */ @@ -140,6 +129,37 @@ public class AcPermissionService { this.permissionSystemAbilityDAO.deleteByExample(example); } + /** + * 获取一个权限的完整信息 + */ + @Transactional(readOnly = true) + public WholePermissionRspVo findWholePermission(Long permissionId) { + Permission permission = this.permissionDAO.selectByPrimaryKey(permissionId); + BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(null != permission, String.format("权限[id = %s]不存在", permissionId)); + List abilityList = findAbilitiesByPermissionId(permissionId); + return PermissionConvertor.convertWholePermissionRspVoFrom(permission, abilityList); + } + /** + * 分页获取权限 + */ + @Transactional(readOnly = true) + public PageVO findByPage(FindPermissionBasicByPageReqVo req) { + return null; + } + private List findAbilitiesByPermissionId(Long permissionId) { + PermissionSystemAbilityExample psaExample = new PermissionSystemAbilityExample(); + psaExample.createCriteria().andPermissionIdEqualTo(permissionId); + List psaFind = permissionSystemAbilityDAO.selectByExample(psaExample); + if (!CollectionUtils.isEmpty(psaFind)) { + List abilityIds = psaFind.stream().map(PermissionSystemAbility::getSystemAbilityId).collect(Collectors.toList()); + SystemAbilityExample abilityExample = new SystemAbilityExample(); + abilityExample.createCriteria().andAbilityIdIn(abilityIds); + List abilityList = abilityDAO.selectByExample(abilityExample); + BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertTrue(abilityList.size() == abilityIds.size(), String.format("权限[id = %s]包含的功能的实体有些已经不存在", permissionId)); + return abilityList; + } + return new ArrayList<>(); + } private Permission findByName(String name) { PermissionExample example = new PermissionExample(); diff --git a/src/main/java/club/joylink/rtss/vo/paper/CreatePaperCompositionReqVo.java b/src/main/java/club/joylink/rtss/vo/paper/CreatePaperCompositionReqVo.java index 98cde4744..0dee07f55 100644 --- a/src/main/java/club/joylink/rtss/vo/paper/CreatePaperCompositionReqVo.java +++ b/src/main/java/club/joylink/rtss/vo/paper/CreatePaperCompositionReqVo.java @@ -3,6 +3,7 @@ package club.joylink.rtss.vo.paper; import lombok.Data; import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; @Data public class CreatePaperCompositionReqVo { @@ -22,4 +23,23 @@ public class CreatePaperCompositionReqVo { */ @NotNull private Long orgId; + /** + * 启用起始时间 + */ + private LocalDateTime startTime; + + /** + * 启用截止时间 + */ + private LocalDateTime endTime; + + /** + * 完成考试有效最长时长,单位min + */ + private Integer validDuration; + + /** + * 及格分 + */ + private Integer passScore; } diff --git a/src/main/java/club/joylink/rtss/vo/paper/PaperCompositionBasicVo.java b/src/main/java/club/joylink/rtss/vo/paper/PaperCompositionBasicVo.java index 641fb6e1f..9ec23caeb 100644 --- a/src/main/java/club/joylink/rtss/vo/paper/PaperCompositionBasicVo.java +++ b/src/main/java/club/joylink/rtss/vo/paper/PaperCompositionBasicVo.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; @Data public class PaperCompositionBasicVo { @@ -29,4 +30,23 @@ public class PaperCompositionBasicVo { */ @JsonSerialize(using = ToStringSerializer.class) private Long orgId; + /** + * 启用起始时间 + */ + private LocalDateTime startTime; + + /** + * 启用截止时间 + */ + private LocalDateTime endTime; + + /** + * 完成考试有效最长时长,单位min + */ + private Integer validDuration; + + /** + * 及格分 + */ + private Integer passScore; } diff --git a/src/main/java/club/joylink/rtss/vo/permission/FindPermissionBasicByPageReqVo.java b/src/main/java/club/joylink/rtss/vo/permission/FindPermissionBasicByPageReqVo.java index 7a7312521..368060767 100644 --- a/src/main/java/club/joylink/rtss/vo/permission/FindPermissionBasicByPageReqVo.java +++ b/src/main/java/club/joylink/rtss/vo/permission/FindPermissionBasicByPageReqVo.java @@ -1,12 +1,75 @@ package club.joylink.rtss.vo.permission; import club.joylink.rtss.vo.client.PageQueryVO; +import club.joylink.rtss.vo.paper.FindPuType; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; import lombok.Data; +import java.util.HashMap; +import java.util.Map; + +/** + * 分页查询权限基础信息请求 + */ @Data public class FindPermissionBasicByPageReqVo extends PageQueryVO { + /** + * 按权限名称查询 + */ + private String name; + /** + * 按权限名称查询时,默认true,true-模糊查询,false-精确查询 + */ + private Boolean nameLike = true; + /** + * 按权限描述查询 + */ + private String des; + /** + * 按权限描述查询时,默认true,true-模糊查询,false-精确查询 + */ + private Boolean desLike = true; /** * 是否降序,true-降序,false-升序,默认值为true; */ private Boolean desc = true; + /** + * 排序类型 + */ + private OrderByType orderByType; + + ///////////////////////////////////////////// + public static enum OrderByType { + ; + private Integer value; + private String orderBy; + + private OrderByType(Integer value, String orderBy) { + this.value = value; + this.orderBy = orderBy; + } + + public String orderBy() { + return this.orderBy; + } + + @JsonCreator + public static OrderByType getItem(Integer value) { + return map.get(value); + } + + @JsonValue + public Integer getValue() { + return this.value; + } + + private static Map map = new HashMap<>(); + + static { + for (OrderByType t : values()) { + map.put(t.value, t); + } + } + } } diff --git a/src/main/java/club/joylink/rtss/vo/permission/convertor/PermissionConvertor.java b/src/main/java/club/joylink/rtss/vo/permission/convertor/PermissionConvertor.java new file mode 100644 index 000000000..bc2e7effe --- /dev/null +++ b/src/main/java/club/joylink/rtss/vo/permission/convertor/PermissionConvertor.java @@ -0,0 +1,28 @@ +package club.joylink.rtss.vo.permission.convertor; + +import club.joylink.rtss.entity.permission.Permission; +import club.joylink.rtss.entity.permission.SystemAbility; +import club.joylink.rtss.vo.permission.WholePermissionRspVo; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class PermissionConvertor { + public static WholePermissionRspVo convertWholePermissionRspVoFrom(Permission fromP, List fromA) { + WholePermissionRspVo rt = new WholePermissionRspVo(); + rt.setId(fromP.getId()); + rt.setCreateTime(fromP.getCreateTime()); + rt.setCreatorId(fromP.getCreatorId()); + rt.setDes(fromP.getDes()); + rt.setName(fromP.getName()); + rt.setUpdateTime(fromP.getUpdateTime()); + if (CollectionUtils.isEmpty(fromA)) { + rt.setAbilityList(new ArrayList<>()); + } else { + rt.setAbilityList(fromA.stream().map(SystemAbilityConvertor::convertPermissionAbilityRspVoFrom).collect(Collectors.toList())); + } + return rt; + } +}