Преглед на файлове

Merge remote-tracking branch 'origin/dev' into dev

dzx преди 2 години
родител
ревизия
65bd5ad09e

+ 32 - 0
src/main/java/com/xjrsoft/common/enums/SystemTypeEnum.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.common.enums;
+
+/**
+ * 系统类型
+ */
+public enum SystemTypeEnum {
+    /**
+     * APP
+     * */
+    SYSTEMAPP("system_app", "app"),
+
+    /**
+     * PC
+     * */
+    SYSTEMPC("system_pc", "pc");
+
+    final String code;
+    final String value;
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    SystemTypeEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+}

+ 9 - 11
src/main/java/com/xjrsoft/module/system/controller/MenuController.java

@@ -12,10 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.jdcloud.sdk.utils.StringUtils;
 import com.xjrsoft.common.constant.GlobalConstant;
-import com.xjrsoft.common.enums.AuthorizeType;
-import com.xjrsoft.common.enums.EnabledMark;
-import com.xjrsoft.common.enums.MenuType;
-import com.xjrsoft.common.enums.YesOrNoEnum;
+import com.xjrsoft.common.enums.*;
 import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.TreeUtil;
@@ -83,8 +80,8 @@ public class MenuController {
 
     @GetMapping("/quick")
     @ApiOperation(value = "用户快捷菜单")
-    public RT<List<MenuVo>> quick() {
-        List<Menu> menus = menuService.getUserQuick();
+    public RT<List<MenuVo>> quick(@Valid MenuTreeDto dto) {
+        List<Menu> menus = menuService.getUserQuick(dto);
         List<MenuVo> menuListVos = BeanUtil.copyToList(menus, MenuVo.class);
         return RT.ok(menuListVos);
     }
@@ -112,6 +109,7 @@ public class MenuController {
                 MPJWrappers.<Menu>lambdaJoin()
                         .like(StrUtil.isNotEmpty(dto.getTitle()), Menu::getTitle, dto.getTitle())
                         .like(StrUtil.isNotEmpty(dto.getName()), Menu::getName, dto.getName())
+                        .eq(Menu::getSystemType, dto.getSystemType())
                         .select(Menu::getId)
                         .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuTreeVo.class).contains(x.getProperty()))
                         .selectAs(Subsystem::getName, MenuTreeVo::getSystemName)
@@ -162,7 +160,7 @@ public class MenuController {
         }
         Menu menu = BeanUtil.toBean(dto, Menu.class);
 
-        if (ObjectUtil.isEmpty(menu.getSystemId())){
+        if (ObjectUtil.isEmpty(menu.getSystemId())) {
             menu.setSystemId(1L);
         }
 
@@ -222,10 +220,10 @@ public class MenuController {
         long count = menuService.count(Wrappers.<Menu>query().lambda()
                 .ne(Menu::getId, dto.getId()).and(wrapper ->
                         wrapper.eq(Menu::getName, dto.getName())
-                        .or()
-                        .eq(Menu::getCode, dto.getCode())
-                        )
-                );
+                                .or()
+                                .eq(Menu::getCode, dto.getCode())
+                )
+        );
 
         if (count > 0) {
             return R.error("菜单名或者菜单编码已经存在!");

+ 4 - 0
src/main/java/com/xjrsoft/module/system/dto/AddMenuDto.java

@@ -65,6 +65,10 @@ public class AddMenuDto implements Serializable {
     @ApiModelProperty("组件类型")
     private Integer menuType;
 
+    @NotNull(message = "系统类型不能为空!")
+    @ApiModelProperty("系统类型(xjr_dictionary_item[system_type])")
+    private String systemType;
+
     @Range(min = 0,max = 1,message = "菜单显示或者隐藏只能是0 或者 1!")
     @ApiModelProperty("菜单显示或者隐藏")
     private Integer display;

+ 7 - 0
src/main/java/com/xjrsoft/module/system/dto/MenuTreeDto.java

@@ -1,8 +1,11 @@
 package com.xjrsoft.module.system.dto;
 
 import lombok.Data;
+import lombok.NonNull;
 import org.hibernate.validator.constraints.Length;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * @title: MenuTreeDto
  * @Author tzx
@@ -12,6 +15,10 @@ import org.hibernate.validator.constraints.Length;
 @Data
 public class MenuTreeDto {
 
+    @Length(max = 20,message = "系统类型!")
+    @NotNull(message = "系统类型code不能为空")
+    private String systemType;
+
     @Length(max = 20,message = "菜单名不能大于20个字符!")
     private String title;
 

+ 5 - 0
src/main/java/com/xjrsoft/module/system/dto/RoleMenuServeListDto.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.system.dto;
 
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotNull;
 
@@ -11,4 +12,8 @@ public class RoleMenuServeListDto {
      */
     @NotNull(message = "角色编号不能为空")
     private Long roleId;
+
+    @Length(max = 20,message = "系统类型!")
+    @NotNull(message = "系统类型code不能为空")
+    private String systemType;
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/system/dto/UpdateMenuDto.java

@@ -68,6 +68,10 @@ public class UpdateMenuDto implements Serializable {
     @ApiModelProperty("组件类型")
     private Integer menuType;
 
+    @NotNull(message = "系统类型不能为空!")
+    @ApiModelProperty("系统类型(xjr_dictionary_item[system_type])")
+    private String systemType;
+
     @Range(min = 0,max = 1,message = "菜单显示或者隐藏只能是0 或者 1!")
     @ApiModelProperty("菜单显示或者隐藏")
     private Integer display;

+ 3 - 0
src/main/java/com/xjrsoft/module/system/entity/Menu.java

@@ -65,6 +65,9 @@ public class Menu extends AuditEntity implements Serializable {
     @ApiModelProperty("组件类型")
     private Integer menuType;
 
+    @ApiModelProperty("系统类型(xjr_dictionary_item[system_type])")
+    private String systemType;
+
     @ApiModelProperty("菜单显示或者隐藏")
     private Integer display;
 

+ 1 - 1
src/main/java/com/xjrsoft/module/system/service/IMenuService.java

@@ -27,5 +27,5 @@ public interface IMenuService extends MPJBaseService<Menu> {
 
     List<MenuServeVo> getRoleMenuServe(RoleMenuServeListDto dto);
 
-    List<Menu> getUserQuick();
+    List<Menu> getUserQuick(MenuTreeDto dto);
 }

+ 7 - 3
src/main/java/com/xjrsoft/module/system/service/impl/MenuServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.system.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -75,6 +76,8 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
         // 获取角色菜单
         List<MenuVo> menuVos = getAuthMenuByRoleIds(new ArrayList<Long>() {{
             add(dto.getRoleId());
+        }}, new MenuTreeDto() {{
+            setSystemType(dto.getSystemType());
         }});
         List<MenuServeVo> result = getSubMenu(menuVos);
         // 获取角色快捷菜单
@@ -99,13 +102,14 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
      * @return
      */
     @Override
-    public List<Menu> getUserQuick() {
+    public List<Menu> getUserQuick(MenuTreeDto dto) {
         Long userId = StpUtil.getLoginIdAsLong();
 
         List<Menu> menus = this.selectJoinList(Menu.class,
                 MPJWrappers.<Menu>lambdaJoin()
                         .innerJoin(XjrMenuQuick.class, XjrMenuQuick::getMenuId, Menu::getId)
                         .eq(XjrMenuQuick::getUserId, userId)
+                        .eq(ObjectUtil.isNotEmpty(dto.getSystemType()), Menu::getSystemType, dto.getSystemType())
                         .selectAs(XjrMenuQuick::getSystemId, Menu::getSystemId)
                         .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
         // 取角色菜单
@@ -114,7 +118,7 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
             menus = this.selectJoinList(Menu.class,
                     MPJWrappers.<Menu>lambdaJoin()
                             .innerJoin(XjrMenuQuick.class, XjrMenuQuick::getMenuId, Menu::getId)
-                            .in(XjrMenuQuick::getRoleId,roleIds)
+                            .in(XjrMenuQuick::getRoleId, roleIds)
                             .selectAs(XjrMenuQuick::getSystemId, Menu::getSystemId)
                             .select(Menu::getId)
                             .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(Menu.class).contains(x.getProperty())));
@@ -159,7 +163,7 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
                         .like(StrUtil.isNotBlank(dto.getTitle()), Menu::getTitle, dto.getTitle())
                         .like(StrUtil.isNotBlank(dto.getCode()), Menu::getCode, dto.getCode())
                         .like(StrUtil.isNotBlank(dto.getName()), Menu::getName, dto.getName())
-                        //                .like(ObjectUtil.isNotEmpty(dto.getEnabledMark()), Menu::getEnabledMark, dto.getEnabledMark())
+                        .eq(ObjectUtil.isNotEmpty(dto.getSystemType()), Menu::getSystemType, dto.getSystemType())
                         .in(CollectionUtils.isNotEmpty(authMenuIdList), Menu::getId, authMenuIdList)
                         .select(Menu::getId)
                         .selectAs(Subsystem::getName, MenuVo::getSystemName)

+ 3 - 0
src/main/java/com/xjrsoft/module/system/vo/MenuVo.java

@@ -46,6 +46,9 @@ public class MenuVo implements Serializable {
     @ApiModelProperty("组件类型 默认组件 0 普通需要注册的组件 1 自定义表单 桌面设计 等已经默认注册进来的组件 ")
     private Integer componentType;
 
+    @ApiModelProperty("系统类型(xjr_dictionary_item[system_type])")
+    private String systemType;
+
     @ApiModelProperty("外链地址 ")
     private String iframeSrc;
 

+ 2 - 2
src/main/resources/mapper/student/BaseStudentAssessmentInspectionMapper.xml

@@ -21,7 +21,7 @@
         left join xjr_user t5 on t.assessment_user_id=t5.id
         left join xjr_dictionary_detail t6 on t6.code=t.score_type
         where  t.delete_mark=0 and t1.delete_mark=0  and t2.delete_mark=0  and t3.delete_mark=0 and t.status=1
-        <if test="dto.projectIds != null">
+        <if test="dto.projectIds != null and dto.projectIds.size()>0">
             and t.base_student_assessment_project_id in
             <foreach item="projectId" index="index" collection="dto.projectIds" open="(" close=")" separator=",">
                 #{projectId}
@@ -75,7 +75,7 @@
         <foreach item="classId" index="index" collection="dto.classIds" open="(" close=")" separator=",">
             #{classId}
         </foreach>
-        <if test="dto.projectIds != null">
+        <if test="dto.projectIds != null and dto.projectIds.size()>0">
             and t1.base_student_assessment_project_id in
             <foreach item="projectId" index="index" collection="dto.projectIds" open="(" close=")" separator=",">
                 #{projectId}

+ 2 - 0
src/main/resources/sqlScript/20231113_sql.sql

@@ -451,6 +451,8 @@ CREATE TABLE base_student_behavior_class_relation
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '学生班级巡查考核-关联班级';
 --------------------------------------------------------------------学生操行--------------------------------------------------------------------
 
+ALTER TABLE xjr_menu ADD COLUMN `system_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'system_pc' COMMENT '系统类型(xjr_dictionary_item[system_type])' AFTER enabled_mark;
+
 --------------------------------------------------------------------奖学金管理--------------------------------------------------------------------
 
 --------------------------------------------------------------------奖学金管理--------------------------------------------------------------------