feat(首页): 快捷入口、待办任务

This commit is contained in:
yjz
2023-12-21 15:16:24 +08:00
parent 33882867c6
commit c10dc662da
7 changed files with 509 additions and 0 deletions
@@ -0,0 +1,53 @@
package com.jero.modules.laws.home.controller;
/**
* @ClassName: LawsHomeBacklogTask
* @Description:
* @Author: yjz
* @Date: 2023-12-21 11:06
* @Version: 1.0
**/
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.modules.activiti.controller.WorkCenterController;
import com.jero.modules.activiti.entity.ProcessAll;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description: 待办任务
* @Author: jero-boot
* @Date: 2023-12-21
* @Version: V1.0
*/
@Api(tags="待办任务")
@RestController
@RequestMapping("/home/lawsHomeBacklogTask")
@Slf4j
public class LawsHomeBacklogTask {
private final ApplicationContext applicationContext;
public LawsHomeBacklogTask(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
/**
* 待办任务-列表查询
* @param processAll
* @return
*/
@AutoLog(value = "待办任务-列表查询")
@ApiOperation(value="待办任务-列表查询", notes="快捷入口-列表查询")
@GetMapping(value = "/queryBacklogTaskList")
public Result<IPage<ProcessAll>> getTodoList(ProcessAll processAll) {
WorkCenterController workCenterController = applicationContext.getBean(WorkCenterController.class);
return workCenterController.getTodoList(processAll, 1, 10, null);
}
}
@@ -0,0 +1,78 @@
package com.jero.modules.laws.home.controller;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.home.entity.LawsHomeQuickAccess;
import com.jero.modules.laws.home.service.ILawsHomeQuickAccessService;
import com.jero.modules.system.entity.SysPermission;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Description: 快捷入口
* @Author: jero-boot
* @Date: 2023-12-21
* @Version: V1.0
*/
@Api(tags="快捷入口")
@RestController
@RequestMapping("/home/lawsHomeQuickAccess")
@Slf4j
public class LawsHomeQuickAccessController extends JeroController<LawsHomeQuickAccess, ILawsHomeQuickAccessService> {
private final ILawsHomeQuickAccessService lawsHomeQuickAccessService;
public LawsHomeQuickAccessController(ILawsHomeQuickAccessService lawsHomeQuickAccessService) {
this.lawsHomeQuickAccessService = lawsHomeQuickAccessService;
}
/**
* 快捷入口-个人展示模块
*
* @param menuName
* @return
*/
@AutoLog(value = "快捷入口-个人展示模块")
@ApiOperation(value="快捷入口-个人展示模块", notes="快捷入口-个人展示模块")
@GetMapping(value = "/queryMenuList")
public Result<List<SysPermission>> queryMenuList(String menuName) {
return Result.OK(lawsHomeQuickAccessService.queryMenuList(menuName));
}
/**
* 快捷入口-可选模块
*
* @param menuName
* @return
*/
@AutoLog(value = "快捷入口-可选模块")
@ApiOperation(value="快捷入口-可选模块", notes="快捷入口-可选模块")
@GetMapping(value = "/queryPermissionMenuList")
public Result<List<SysPermission>> queryPermissionMenuList(String menuName) {
return Result.OK(lawsHomeQuickAccessService.queryPermissionMenuList(menuName));
}
/**
* 快捷入口-保存菜单
*
* @param jsonObject
* @return
*/
@AutoLog(value = "快捷入口-保存菜单")
@ApiOperation(value="快捷入口-保存菜单", notes="快捷入口-保存菜单")
@PostMapping(value = "/saveMenu")
public Result<T> saveMenu(@Validated @RequestBody JSONObject jsonObject) {
lawsHomeQuickAccessService.saveMenu((String) jsonObject.get("permissionIds"));
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
}
@@ -0,0 +1,61 @@
package com.jero.modules.laws.home.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 快捷入口
* @Author: jero-boot
* @Date: 2023-12-21
* @Version: V1.0
*/
@Data
@TableName("laws_home_quick_access")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_home_quick_access对象", description="快捷入口")
public class LawsHomeQuickAccess implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**菜单id*/
@Excel(name = "菜单id", width = 15)
@ApiModelProperty(value = "菜单id")
private String permissionId;
/**用户id*/
@Excel(name = "用户id", width = 15)
@ApiModelProperty(value = "用户id")
private String userId;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
}
@@ -0,0 +1,14 @@
package com.jero.modules.laws.home.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.laws.home.entity.LawsHomeQuickAccess;
/**
* @Description: 快捷入口
* @Author: jero-boot
* @Date: 2023-12-21
* @Version: V1.0
*/
public interface LawsHomeQuickAccessMapper extends BaseMapper<LawsHomeQuickAccess> {
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.laws.home.mapper.LawsHomeQuickAccessMapper">
</mapper>
@@ -0,0 +1,98 @@
package com.jero.modules.laws.home.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.home.entity.LawsHomeQuickAccess;
import com.jero.modules.system.entity.SysPermission;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @Description: 快捷入口
* @Author: jero-boot
* @Date: 2023-12-21
* @Version: V1.0
*/
public interface ILawsHomeQuickAccessService extends IService<LawsHomeQuickAccess> {
/**
* 分页查询
*
* @param lawsHomeQuickAccess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<LawsHomeQuickAccess> queryPage(LawsHomeQuickAccess lawsHomeQuickAccess, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param lawsHomeQuickAccess
* @param req
* @return
*/
List<LawsHomeQuickAccess> queryList(LawsHomeQuickAccess lawsHomeQuickAccess, HttpServletRequest req);
/**
* 保存
*
* @param lawsHomeQuickAccess
* @return
*/
void add(LawsHomeQuickAccess lawsHomeQuickAccess);
/**
* 更新
*
* @param lawsHomeQuickAccess
* @return
*/
void editById(LawsHomeQuickAccess lawsHomeQuickAccess);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
LawsHomeQuickAccess queryById(String id);
/**
* 快捷入口-可选模块
* @param menuName
* @return
*/
List<SysPermission> queryPermissionMenuList(String menuName);
/**
* 快捷入口-保存菜单
* @param permissionIdList
*/
void saveMenu(String permissionIdList);
/**
* 快捷入口-个人展示模块
* @param menuName
* @return
*/
List<SysPermission> queryMenuList(String menuName);
}
@@ -0,0 +1,200 @@
package com.jero.modules.laws.home.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.laws.home.entity.LawsHomeQuickAccess;
import com.jero.modules.laws.home.mapper.LawsHomeQuickAccessMapper;
import com.jero.modules.laws.home.service.ILawsHomeQuickAccessService;
import com.jero.modules.system.entity.SysPermission;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysRolePermission;
import com.jero.modules.system.service.ISysPermissionService;
import com.jero.modules.system.service.ISysRolePermissionService;
import com.jero.modules.system.service.ISysRoleService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 快捷入口
* @Author: jero-boot
* @Date: 2023-12-21
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class LawsHomeQuickAccessServiceImpl extends ServiceImpl<LawsHomeQuickAccessMapper, LawsHomeQuickAccess> implements ILawsHomeQuickAccessService {
private final ISysRoleService sysRoleService;
private final ISysRolePermissionService sysRolePermissionService;
private final ISysPermissionService sysPermissionService;
public LawsHomeQuickAccessServiceImpl(ISysRoleService sysRoleService,
ISysRolePermissionService sysRolePermissionService,
ISysPermissionService sysPermissionService) {
this.sysRoleService = sysRoleService;
this.sysRolePermissionService = sysRolePermissionService;
this.sysPermissionService = sysPermissionService;
}
/**
* 分页查询
*
* @param lawsHomeQuickAccess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<LawsHomeQuickAccess> queryPage(LawsHomeQuickAccess lawsHomeQuickAccess, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
QueryWrapper<LawsHomeQuickAccess> queryWrapper = QueryGenerator.initQueryWrapper(lawsHomeQuickAccess, req.getParameterMap());
Page<LawsHomeQuickAccess> page = new Page<>(pageNo, pageSize);
return page(page, queryWrapper);
}
/**
* 列表查询
*
* @param lawsHomeQuickAccess
* @param req
* @return
*/
@Override
public List<LawsHomeQuickAccess> queryList(LawsHomeQuickAccess lawsHomeQuickAccess, HttpServletRequest req) {
return list(QueryGenerator.initQueryWrapper(lawsHomeQuickAccess, req.getParameterMap()));
}
/**
* 保存
*
* @param lawsHomeQuickAccess
* @return
*/
@Override
public void add(LawsHomeQuickAccess lawsHomeQuickAccess) {
Date now = new Date();
lawsHomeQuickAccess.setCreateTime(now);
lawsHomeQuickAccess.setUpdateTime(now);
save(lawsHomeQuickAccess);
}
/**
* 更新
*
* @param lawsHomeQuickAccess
* @return
*/
@Override
public void editById(LawsHomeQuickAccess lawsHomeQuickAccess) {
Date now = new Date();
lawsHomeQuickAccess.setUpdateTime(now);
saveOrUpdate(lawsHomeQuickAccess);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public LawsHomeQuickAccess queryById(String id) {
return getById(id);
}
@Override
public List<SysPermission> queryPermissionMenuList(String menuName) {
List<SysPermission> sysPermissionList = new ArrayList<>();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<SysRole> roleList = sysRoleService.list(new LambdaQueryWrapper<SysRole>()
.in(SysRole::getRoleCode, Arrays.asList(sysUser.getRoleIds().split(","))));
if (!roleList.isEmpty()){
List<String> roleIdList = roleList.stream().map(SysRole::getId).collect(Collectors.toList());
List<SysRolePermission> sysRolePermissionList = sysRolePermissionService.list(
new LambdaQueryWrapper<SysRolePermission>()
.in(SysRolePermission::getRoleId, roleIdList));
if (!sysRolePermissionList.isEmpty()){
List<String> permissionIdList = sysRolePermissionList.stream().map(SysRolePermission::getPermissionId).distinct().collect(Collectors.toList());
sysPermissionList = sysPermissionService.list(new LambdaQueryWrapper<SysPermission>()
.in(SysPermission::getId, permissionIdList)
.eq(SysPermission::getMenuType, 1)
.eq(SysPermission::isHidden, 0)
.eq(StringUtils.isNotBlank(menuName), SysPermission::getName, menuName));
}
}
return sysPermissionList;
}
@Override
public void saveMenu(String permissionIdList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 删除旧数据
remove(new LambdaQueryWrapper<LawsHomeQuickAccess>()
.eq(LawsHomeQuickAccess::getUserId, sysUser.getId()));
// 保存新数据
List<LawsHomeQuickAccess> lawsHomeQuickAccessList = new ArrayList<>();
if (StringUtils.isNotBlank(permissionIdList)){
for (String permissionId : permissionIdList.split(",")) {
LawsHomeQuickAccess lawsHomeQuickAccess = new LawsHomeQuickAccess();
lawsHomeQuickAccess.setUserId(sysUser.getId());
lawsHomeQuickAccess.setPermissionId(permissionId);
lawsHomeQuickAccessList.add(lawsHomeQuickAccess);
}
saveBatch(lawsHomeQuickAccessList);
}
}
@Override
public List<SysPermission> queryMenuList(String menuName) {
List<SysPermission> sysPermissionList = new ArrayList<>();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<LawsHomeQuickAccess> lawsHomeQuickAccessList = list(new LambdaQueryWrapper<LawsHomeQuickAccess>()
.eq(LawsHomeQuickAccess::getUserId, sysUser.getId()));
if (!lawsHomeQuickAccessList.isEmpty()){
List<String> permissionIdList = lawsHomeQuickAccessList.stream().map(LawsHomeQuickAccess::getPermissionId).collect(Collectors.toList());
sysPermissionList = sysPermissionService.list(new LambdaQueryWrapper<SysPermission>()
.in(SysPermission::getId, permissionIdList)
.eq(StringUtils.isNotBlank(menuName), SysPermission::getName, menuName)
.orderByDesc(SysPermission::getCreateTime));
}
return sysPermissionList;
}
}