jingyuanchao 2 жил өмнө
parent
commit
54501d917e

+ 4 - 5
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteOrgService.java

@@ -7,7 +7,6 @@ import com.xunmei.system.api.domain.Org;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.factory.RemoteOrgFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -24,16 +23,16 @@ public interface RemoteOrgService {
     R<List<SysOrg>> getAllOrg(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @GetMapping("/dept/selectCheckSubOrgIdList")
-    public R<List<Long>> selectCheckSubOrgIdList(Long orgId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    R<List<Long>> selectCheckSubOrgIdList(Long orgId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @GetMapping("/dept/selectSysOrgById")
-    public R<SysOrg> selectSysOrgById(Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    R<SysOrg> selectSysOrgById(@RequestParam("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @GetMapping("/dept/listByIds")
-    public R<List<SysOrg>> listByIds(List<Long> ids, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    R<List<SysOrg>> listByIds(List<Long> ids, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @GetMapping("/dept/findListByOrgType")
-    public R<List<Long>> findListByOrgType( @RequestParam("execOrgType") Integer execOrgType, @RequestHeader(SecurityConstants.FROM_SOURCE)String source);
+    R<List<Long>> findListByOrgType(Integer execOrgType, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @PostMapping("/org/sync/batch")
     R<Boolean> batchSaveSyncOrg(@RequestBody List<SysOrg> orgList, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

+ 4 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/dto/SysLearningMaterialsPageDto.java

@@ -25,6 +25,9 @@ public class SysLearningMaterialsPageDto extends BaseEntity {
     @ApiModelProperty(value = "资料标题")
     private Long orgId;
 
-    @ApiModelProperty(value = "上级机构id集合",notes = "学习资料分页列表默认查询上级机构且公开的数据")
+    @ApiModelProperty(value = "上级机构id集合",notes = "学习资料分页列表默认查询上级机构且公开的数据,此字段无需传递,后端自行获取")
     private List<Long> orgIdList;
+
+    @ApiModelProperty(value = "当前用户id",notes = "此字段无需传递,后端自行获取")
+    private Long userId;
 }

+ 10 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/SysLearningMaterialsServiceImpl.java

@@ -1,11 +1,13 @@
 package com.xunmei.core.edu.service.impl;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.common.core.domain.edu.domain.SysLearningMaterials;
@@ -48,6 +50,7 @@ public class SysLearningMaterialsServiceImpl extends ServiceImpl<SysLearningMate
             page = new Page<>();
         }
         dealParentOrgId(sysLearningMaterials);
+        sysLearningMaterials.setUserId(SecurityUtils.getUserId());
         //获取数据
         page = sysLearningMaterialsMapper.selectPageData(page, sysLearningMaterials);
         //抓换为TableDataInfo适配前端
@@ -60,13 +63,15 @@ public class SysLearningMaterialsServiceImpl extends ServiceImpl<SysLearningMate
     }
 
     private void dealParentOrgId(SysLearningMaterialsPageDto sysLearningMaterials) {
-        SysOrg sysOrg = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER).getData();
+        R<SysOrg> r = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER);
+        SysOrg sysOrg = r.getData();
         if (sysOrg == null || ObjectUtil.isEmpty(sysOrg.getPath())) {
-            return;
+            throw new RuntimeException("机构不存在或机构信息缺失!");
         }
-        String[] split = sysOrg.getPath().split("-");
+        String[] split = "4352539158904832-4352539158904833-".split("-");
         List<Long> list = new ArrayList<>();
         Stream.of(split).forEach(s -> list.add(Long.valueOf(s)));
+        list.remove(sysLearningMaterials.getOrgId());
         sysLearningMaterials.setOrgIdList(list);
     }
 
@@ -106,7 +111,8 @@ public class SysLearningMaterialsServiceImpl extends ServiceImpl<SysLearningMate
         sysLearningMaterials.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
         sysLearningMaterials.setUpdateTime(DateUtils.getNowDate());
         sysLearningMaterials.setIsOpen(0);
-        final SysOrg sysOrg = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER).getData();
+        final R<SysOrg> r = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER);
+        SysOrg sysOrg = r.getData();
         if (sysOrg != null) {
             sysLearningMaterials.setOrgName(sysOrg.getName());
             sysLearningMaterials.setOrgPath(sysOrg.getPath());

+ 47 - 28
soc-modules/soc-modules-core/src/main/resources/mapper/edu/SysLearningMaterialsMapper.xml

@@ -40,16 +40,8 @@
         from sys_learning_materials
     </sql>
 
-    <sql id="pageRequest">
-        <if test="request.knowledgeId != null">
-            and m.knowledge_id = #{request.knowledgeId}
-        </if>
-        <if test="request.title != null ">
-            and m.title = #{request.title}
-        </if>
-    </sql>
-
-    <select id="selectSysLearningMaterialsList" parameterType="com.xunmei.common.core.domain.edu.domain.SysLearningMaterials"
+    <select id="selectSysLearningMaterialsList"
+            parameterType="com.xunmei.common.core.domain.edu.domain.SysLearningMaterials"
             resultMap="SysLearningMaterialsResult">
         <include refid="selectSysLearningMaterialsVo"/>
         <where>
@@ -91,6 +83,14 @@
         <include refid="selectSysLearningMaterialsVo"/>
         where id = #{id}
     </select>
+    <sql id="pageRequest">
+        <if test="request.knowledgeId != null">
+            and m.knowledge_id = #{request.knowledgeId}
+        </if>
+        <if test="request.title != null ">
+            and m.title = #{request.title}
+        </if>
+    </sql>
     <select id="selectPageData" resultType="com.xunmei.common.core.domain.edu.vo.SysLearningMaterialsPageVo">
         select m.id,
         title,
@@ -108,31 +108,49 @@
         where m.deleted = 0
         and k.deleted = 0
         <choose>
-            <when test="request.checkSub==false">
+            <!-- 查询公开的,需要判断是否关联上级机构,类型与标题 -->
+            <when test="request.isOpen != null and request.isOpen ==1">
+                <include refid="pageRequest"/>
+                <if test="request.checkSub==false">
+                    and m.org_id = #{request.orgId}
+                </if>
+                <if test="request.checkSub==true">
+                    or ( m.org_id in
+                    <foreach collection="request.orgIdList" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                    and m.is_open = 1
+                    <include refid="pageRequest"/>)
+                </if>
+            </when>
+            <!-- 查询未公开的,需要判断类型与标题 且查询当前机构自己创建的, -->
+            <when test="request.isOpen != null">
+                <include refid="pageRequest"/>
                 and m.org_id = #{request.orgId}
+                and m.create_by = #{request.userId}
+                and m.is_open = 0
             </when>
+            <!-- 公开条件等于null时,需要判断类型与标题 且查询当前机构自己创建的, -->
             <otherwise>
-                and m.org_path like concat((select path from sys_org where id=#{request.orgId}), '%')
+                <include refid="pageRequest"/>
+                <if test="request.checkSub==false">
+                    and m.org_id = #{request.orgId}
+                </if>
+                <if test="request.checkSub==true">
+                    or ( m.org_id in
+                    <foreach collection="request.orgIdList" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                    and m.is_open = 1
+                    <include refid="pageRequest"/>)
+                </if>
             </otherwise>
         </choose>
-        <include refid="pageRequest"/>
-        <if test="request.isOpen != null ">
-            and m.is_open = #{request.isOpen}
-        </if>
-        <if test="request.orgIdList != null and  request.orgIdList.size()>0">
-            or (
-            m.org_id in
-            <foreach collection="request.orgIdList" item="item" open="(" separator="," close=")">
-                #{item}
-            </foreach>
-            and m.is_open = 1
-            <include refid="pageRequest"/>
-            )
-        </if>
         order by m.org_id, m.create_time desc
     </select>
 
-    <insert id="insertSysLearningMaterials" parameterType="com.xunmei.common.core.domain.edu.domain.SysLearningMaterials">
+    <insert id="insertSysLearningMaterials"
+            parameterType="com.xunmei.common.core.domain.edu.domain.SysLearningMaterials">
         insert into sys_learning_materials
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,
@@ -200,7 +218,8 @@
         </trim>
     </insert>
 
-    <update id="updateSysLearningMaterials" parameterType="com.xunmei.common.core.domain.edu.domain.SysLearningMaterials">
+    <update id="updateSysLearningMaterials"
+            parameterType="com.xunmei.common.core.domain.edu.domain.SysLearningMaterials">
         update sys_learning_materials
         <trim prefix="SET" suffixOverrides=",">
             <if test="title != null">title =

+ 6 - 6
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -143,18 +143,18 @@ public class SysDeptController extends BaseController {
     }
 
     @GetMapping("/selectCheckSubOrgIdList")
-    public List<Long> selectCheckSubOrgIdList(Long orgId) {
-        return orgService.selectCheckSubOrgIdList(orgId);
+    public R<List<Long>> selectCheckSubOrgIdList(Long orgId) {
+        return R.ok(orgService.selectCheckSubOrgIdList(orgId));
     }
 
     @GetMapping("/selectSysOrgById")
-    public SysOrg selectSysOrgById(Long id) {
-        return orgService.selectSysOrgById(id);
+    public R<SysOrg> selectSysOrgById(Long id) {
+        return R.ok(orgService.getById(id));
     }
 
     @GetMapping("/listByIds")
-    public List<SysOrg> listByIds(List<Long> ids) {
-        return orgService.listByIds(ids);
+    public R<List<SysOrg>> listByIds(List<Long> ids) {
+        return R.ok(orgService.listByIds(ids));
     }
 
     @GetMapping("/findListByOrgType")