diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/controller/LawsHomeBacklogTask.java b/laws-modules/src/main/java/com/jero/modules/laws/home/controller/LawsHomeBacklogTask.java new file mode 100644 index 00000000..c4dd5df3 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/controller/LawsHomeBacklogTask.java @@ -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> getTodoList(ProcessAll processAll) { + WorkCenterController workCenterController = applicationContext.getBean(WorkCenterController.class); + return workCenterController.getTodoList(processAll, 1, 10, null); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/controller/LawsHomeQuickAccessController.java b/laws-modules/src/main/java/com/jero/modules/laws/home/controller/LawsHomeQuickAccessController.java new file mode 100644 index 00000000..a14da839 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/controller/LawsHomeQuickAccessController.java @@ -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 { + private final ILawsHomeQuickAccessService lawsHomeQuickAccessService; + + public LawsHomeQuickAccessController(ILawsHomeQuickAccessService lawsHomeQuickAccessService) { + this.lawsHomeQuickAccessService = lawsHomeQuickAccessService; + } + + /** + * 快捷入口-个人展示模块 + * + * @param menuName + * @return + */ + @AutoLog(value = "快捷入口-个人展示模块") + @ApiOperation(value="快捷入口-个人展示模块", notes="快捷入口-个人展示模块") + @GetMapping(value = "/queryMenuList") + public Result> queryMenuList(String menuName) { + return Result.OK(lawsHomeQuickAccessService.queryMenuList(menuName)); + } + + /** + * 快捷入口-可选模块 + * + * @param menuName + * @return + */ + @AutoLog(value = "快捷入口-可选模块") + @ApiOperation(value="快捷入口-可选模块", notes="快捷入口-可选模块") + @GetMapping(value = "/queryPermissionMenuList") + public Result> queryPermissionMenuList(String menuName) { + return Result.OK(lawsHomeQuickAccessService.queryPermissionMenuList(menuName)); + } + + /** + * 快捷入口-保存菜单 + * + * @param jsonObject + * @return + */ + @AutoLog(value = "快捷入口-保存菜单") + @ApiOperation(value="快捷入口-保存菜单", notes="快捷入口-保存菜单") + @PostMapping(value = "/saveMenu") + public Result saveMenu(@Validated @RequestBody JSONObject jsonObject) { + lawsHomeQuickAccessService.saveMenu((String) jsonObject.get("permissionIds")); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/entity/LawsHomeQuickAccess.java b/laws-modules/src/main/java/com/jero/modules/laws/home/entity/LawsHomeQuickAccess.java new file mode 100644 index 00000000..3dc303de --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/entity/LawsHomeQuickAccess.java @@ -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; +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeQuickAccessMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeQuickAccessMapper.java new file mode 100644 index 00000000..5aa6dba4 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeQuickAccessMapper.java @@ -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 { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeQuickAccessMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeQuickAccessMapper.xml new file mode 100644 index 00000000..355b47e8 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeQuickAccessMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/ILawsHomeQuickAccessService.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/ILawsHomeQuickAccessService.java new file mode 100644 index 00000000..5db2d094 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/ILawsHomeQuickAccessService.java @@ -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 { + + /** + * 分页查询 + * + * @param lawsHomeQuickAccess + * @param pageNo + * @param pageSize + * @param req + * @return + */ + IPage queryPage(LawsHomeQuickAccess lawsHomeQuickAccess, Integer pageNo, Integer pageSize, HttpServletRequest req); + + /** + * 列表查询 + * + * @param lawsHomeQuickAccess + * @param req + * @return + */ + List 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 ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + LawsHomeQuickAccess queryById(String id); + + /** + * 快捷入口-可选模块 + * @param menuName + * @return + */ + List queryPermissionMenuList(String menuName); + + /** + * 快捷入口-保存菜单 + * @param permissionIdList + */ + void saveMenu(String permissionIdList); + + /** + * 快捷入口-个人展示模块 + * @param menuName + * @return + */ + List queryMenuList(String menuName); +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java new file mode 100644 index 00000000..e026e43c --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java @@ -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 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 queryPage(LawsHomeQuickAccess lawsHomeQuickAccess, Integer pageNo, Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsHomeQuickAccess, req.getParameterMap()); + Page page = new Page<>(pageNo, pageSize); + return page(page, queryWrapper); + } + + /** + * 列表查询 + * + * @param lawsHomeQuickAccess + * @param req + * @return + */ + @Override + public List 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 ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public LawsHomeQuickAccess queryById(String id) { + return getById(id); + } + + @Override + public List queryPermissionMenuList(String menuName) { + List sysPermissionList = new ArrayList<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List roleList = sysRoleService.list(new LambdaQueryWrapper() + .in(SysRole::getRoleCode, Arrays.asList(sysUser.getRoleIds().split(",")))); + if (!roleList.isEmpty()){ + List roleIdList = roleList.stream().map(SysRole::getId).collect(Collectors.toList()); + List sysRolePermissionList = sysRolePermissionService.list( + new LambdaQueryWrapper() + .in(SysRolePermission::getRoleId, roleIdList)); + if (!sysRolePermissionList.isEmpty()){ + List permissionIdList = sysRolePermissionList.stream().map(SysRolePermission::getPermissionId).distinct().collect(Collectors.toList()); + sysPermissionList = sysPermissionService.list(new LambdaQueryWrapper() + .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() + .eq(LawsHomeQuickAccess::getUserId, sysUser.getId())); + // 保存新数据 + List 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 queryMenuList(String menuName) { + List sysPermissionList = new ArrayList<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List lawsHomeQuickAccessList = list(new LambdaQueryWrapper() + .eq(LawsHomeQuickAccess::getUserId, sysUser.getId())); + if (!lawsHomeQuickAccessList.isEmpty()){ + List permissionIdList = lawsHomeQuickAccessList.stream().map(LawsHomeQuickAccess::getPermissionId).collect(Collectors.toList()); + sysPermissionList = sysPermissionService.list(new LambdaQueryWrapper() + .in(SysPermission::getId, permissionIdList) + .eq(StringUtils.isNotBlank(menuName), SysPermission::getName, menuName) + .orderByDesc(SysPermission::getCreateTime)); + } + return sysPermissionList; + } +}