Explorar o código

文件柜权限前后台人员自身权限问题修改

yanliming hai 10 meses
pai
achega
d06801f7df

+ 3 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/entity/OaFileInfo.java

@@ -56,6 +56,9 @@ public class OaFileInfo {
 			@ApiModelProperty(value = "是否删除")
 	private Boolean delFlag;
 
+	@ApiModelProperty(value = "创建电话号码")
+	private String createPhone;
+
 
 	@Transient
 	@ApiModelProperty(value = "创建人")

+ 36 - 9
common/src/main/resources/mapper/base/OaFileInfo.xml

@@ -14,6 +14,7 @@
 			<result property="updateTime" column="update_time" />
 			<result property="delFlag" column="del_flag" />
 			<result property="uploadTime" column="upload_time" />
+			<result property="createPhone" column="create_phone" />
 
 			</resultMap>
 	<insert id="insert" parameterType="com.jpsoft.railroad.modules.base.entity.OaFileInfo">
@@ -24,7 +25,7 @@
 	-->
 	<![CDATA[
 		insert into base_oa_file_info
-	    (id_,name_,url_,type_,create_by,create_time,update_by,update_time,del_flag,upload_time)
+	    (id_,name_,url_,type_,create_by,create_time,update_by,update_time,del_flag,upload_time,create_phone)
 		values
 		(
 #{id,jdbcType=VARCHAR}
@@ -37,6 +38,7 @@
 ,#{updateTime,jdbcType= TIMESTAMP }
 ,#{delFlag,jdbcType= NUMERIC }
 ,#{uploadTime,jdbcType= TIMESTAMP }
+,#{createPhone,jdbcType=VARCHAR}
 		)
 	]]>
 	</insert>
@@ -73,6 +75,9 @@
 			<if test="uploadTime!=null">
 				upload_time=#{uploadTime,jdbcType= TIMESTAMP },
 			</if>
+			<if test="createPhone!=null">
+				create_phone=#{createPhone,jdbcType=VARCHAR},
+			</if>
 		</set>
 	where id_=#{id}
 	</update>
@@ -94,6 +99,24 @@
 			<if test="searchParams.name != null">
 				and name_ like #{searchParams.name}
 			</if>
+			<if test="searchParams.createPhone != null">
+				<![CDATA[
+					and ( create_phone = #{searchParams.createPhone}
+				]]>
+				<if test="searchParams.oaFileRegUserInfoList != null">
+					<foreach item="item" collection="searchParams.oaFileRegUserInfoList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				<if test="searchParams.oaFileOrgList != null">
+					<foreach item="item" collection="searchParams.oaFileOrgList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				)
+			</if>
 			<if test="searchParams.createBy != null">
 				<![CDATA[
 					and ( create_by = #{searchParams.createBy}
@@ -129,17 +152,21 @@
 			<if test="searchParams.name != null">
 				and a.name_ like #{searchParams.name}
 			</if>
-			<if test="searchParams.createBy != null">
+			<if test="searchParams.createPhone != null">
 				<![CDATA[
-					and (a.create_by = #{searchParams.createBy}
+					and ( create_phone = #{searchParams.createPhone}
 				]]>
-				<if test="searchParams.businessIds != null">
-					or a.id_ in (select file_id from base_oa_file_reg_user_info
-					where del_flag = 0
-					<foreach item="businessId" collection="searchParams.businessIds"  open="and business_id in (" separator="," close=")">
-						#{businessId}
+				<if test="searchParams.oaFileRegUserInfoList != null">
+					<foreach item="item" collection="searchParams.oaFileRegUserInfoList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				<if test="searchParams.oaFileOrgList != null">
+					<foreach item="item" collection="searchParams.oaFileOrgList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
 					</foreach>
-					)
 				</if>
 				)
 			</if>

+ 26 - 1
web/src/main/java/com/jpsoft/railroad/modules/base/controller/OaFileInfoController.java

@@ -71,6 +71,28 @@ public class OaFileInfoController {
             oaFileInfo.setId(UUID.randomUUID().toString());
             oaFileInfo.setDelFlag(false);
             oaFileInfo.setCreateBy(subject);
+
+            String phone = "";
+
+            RegUser regUser = regUserService.get(subject);
+
+            //先判断是否前端用户创建
+            if (regUser != null) {
+                phone = regUser.getPhone();
+            }
+
+            //后查看后台用户创建的电话
+            if(StringUtils.isEmpty(phone)){
+                User user = userService.get(subject);
+                if(user!=null){
+                    phone = user.getPhone();
+                }
+            }
+
+            if(StringUtils.isNotEmpty(phone)){
+                oaFileInfo.setCreatePhone(phone);
+            }
+
             oaFileInfo.setCreateTime(new Date());
 
             JSONArray jsonArray = new JSONArray();
@@ -291,10 +313,10 @@ public class OaFileInfoController {
         }
 
         if (StringUtils.isNotEmpty(subject)) {
-            searchParams.put("createBy", subject);
 
             if (curUser != null) {
                 if (StringUtils.isNotEmpty(curUser.getPhone())) {
+                    searchParams.put("createPhone", curUser.getPhone());
                     RegUser regUser = regUserService.findByPhone(curUser.getPhone());
                     if (regUser != null) {
                         //个人查看文件
@@ -319,6 +341,9 @@ public class OaFileInfoController {
                         }
                     }
                 }
+                else{
+                    searchParams.put("createBy", subject);
+                }
             }
         }
 

+ 35 - 6
web/src/main/java/com/jpsoft/railroad/modules/mobile/controller/OaFileInfoApi.java

@@ -73,8 +73,8 @@ public class OaFileInfoApi {
         try {
             Map<String,Object> searchParams = new HashMap<>();
 
-            RegUser regUser = regUserService.get(subject);
-            if(regUser == null){
+            RegUser curUser = regUserService.get(subject);
+            if(curUser == null){
                 throw new Exception("未登录");
             }
 
@@ -89,15 +89,44 @@ public class OaFileInfoApi {
                 searchParams.put("name","%" + name + "%");
             }
 
-            searchParams.put("businessIds",Arrays.asList(regUser.getId(),regUser.getOrgId()));
-
-            searchParams.put("createBy",regUser.getId());
+            if (StringUtils.isNotEmpty(subject)) {
+                if (curUser != null) {
+                    if (StringUtils.isNotEmpty(curUser.getPhone())) {
+
+                        searchParams.put("createPhone", curUser.getPhone());
+
+                        RegUser regUser = regUserService.findByPhone(curUser.getPhone());
+                        if (regUser != null) {
+                            //个人查看文件
+                            List<OaFileRegUserInfo> oaFileRegUserInfoList = oaFileRegUserInfoService.findRelationByRegId(regUser.getId(), "2");
+                            searchParams.put("oaFileRegUserInfoList", oaFileRegUserInfoList);
+
+                            //部门查看文件
+                            List<String> orgIdList = new ArrayList<>();
+                            String orgId = regUser.getOrgId();
+                            orgIdList.add(orgId);
+                            Organization organization = organizationService.get(orgId);
+                            while (StringUtils.isNotEmpty(organization.getParentId())) {
+                                Organization parentItem = organizationService.get(organization.getParentId());
+                                if (parentItem != null) {
+                                    orgIdList.add(parentItem.getId());
+                                }
+                                organization = parentItem;
+                            }
+                            List<OaFileRegUserInfo> oaFileOrgList = oaFileRegUserInfoService.findRelationByOrgs(orgIdList, "1");
+                            if (oaFileOrgList.size() > 0) {
+                                searchParams.put("oaFileOrgList", oaFileOrgList);
+                            }
+                        }
+                    }
+                }
+            }
 
             Page<OaFileInfo> page = oaFileInfoService.pageSearchByMobile(searchParams,pageIndex,pageSize,true,sortList);
 
             for (OaFileInfo oaFileInfo:page) {
                 if(StringUtils.isNotEmpty(oaFileInfo.getCreateBy())){
-                    RegUser regUser1 = regUserService.get(oaFileInfo.getCreateBy());
+                    RegUser regUser1 = regUserService.findByPhone(oaFileInfo.getCreatePhone());
                     if(regUser1!=null){
                         oaFileInfo.setCreateByN(regUser1.getName());