|
@@ -17,6 +17,7 @@ import com.cnd3b.common.parameter.parameter;
|
|
|
import p2.common.parse.A;
|
|
import p2.common.parse.A;
|
|
|
import p2.pao.PaoRemote;
|
|
import p2.pao.PaoRemote;
|
|
|
import p2.pao.PaoSetRemote;
|
|
import p2.pao.PaoSetRemote;
|
|
|
|
|
+import p2.pao.R;
|
|
|
import p2.util.P2Exception;
|
|
import p2.util.P2Exception;
|
|
|
|
|
|
|
|
import java.net.URI;
|
|
import java.net.URI;
|
|
@@ -200,205 +201,102 @@ public class wechatapplet extends Controller {
|
|
|
*/
|
|
*/
|
|
|
public String getFilesOfPath() {
|
|
public String getFilesOfPath() {
|
|
|
String folderPath = content.getString("folderPath");
|
|
String folderPath = content.getString("folderPath");
|
|
|
- // 构造ListObjectsRequest请求。
|
|
|
|
|
- ListObjectsRequest listObjectsRequest = new ListObjectsRequest(BUCKE_NAME_1).withMaxKeys(1000);
|
|
|
|
|
- // 设置正斜线(/)为文件夹的分隔符。
|
|
|
|
|
- listObjectsRequest.setDelimiter("/");
|
|
|
|
|
- // 列出fun目录下的所有文件和文件夹。
|
|
|
|
|
- listObjectsRequest.setPrefix(folderPath);
|
|
|
|
|
- ObjectListing listing = ossClient.listObjects(listObjectsRequest);
|
|
|
|
|
- // 遍历所有文件。
|
|
|
|
|
- System.out.println("Objects:");
|
|
|
|
|
- List<JSONObject> objectSummaryList = new ArrayList<>();
|
|
|
|
|
- List<OSSObjectSummary> sums = listing.getObjectSummaries();
|
|
|
|
|
- //按照时间排序
|
|
|
|
|
- Collections.sort(sums, (o1, o2) -> {
|
|
|
|
|
- // TODO Auto-generated method stub
|
|
|
|
|
- long dateTime1 = o1.getLastModified().getTime();
|
|
|
|
|
- long dateTime2 = o2.getLastModified().getTime();
|
|
|
|
|
- if (dateTime1 == dateTime2) {
|
|
|
|
|
- return 0;
|
|
|
|
|
- } else {
|
|
|
|
|
- //时间正序
|
|
|
|
|
-// return dateTime1 > dateTime2 ? 1 : -1;
|
|
|
|
|
- //时间倒序
|
|
|
|
|
- return dateTime1 > dateTime2 ? -1 : 1;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- for (OSSObjectSummary objectSummary : sums) {
|
|
|
|
|
- if (!objectSummary.getKey().equals(folderPath)) {
|
|
|
|
|
- JSONObject object = new JSONObject();
|
|
|
|
|
- object.put("key", objectSummary.getKey());
|
|
|
|
|
- object.put("name", objectSummary.getKey().replace(folderPath, ""));
|
|
|
|
|
- object.put("size", objectSummary.getSize() / 1024);
|
|
|
|
|
- object.put("time", getDateTime_Str(objectSummary.getLastModified()));
|
|
|
|
|
- object.put("url", file_url + "/" + objectSummary.getKey());
|
|
|
|
|
- objectSummaryList.add(object);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //查询对应用户的角色
|
|
|
|
|
- String sqlRoles = "SELECT wechat_position ,fusertype FROM tuser WHERE tuserid = '" + parameter.tuserid + "'";
|
|
|
|
|
- Rows rowsRoles = dbConnect.runSqlQuery(sqlRoles);
|
|
|
|
|
- ArrayList<String> listRole = rowsRoles.toArrayList("wechat_position");
|
|
|
|
|
- String fusertype = "经销商";
|
|
|
|
|
- if (!rowsRoles.isEmpty()) {
|
|
|
|
|
- fusertype = rowsRoles.get(0).getString("fusertype");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ //获取经销商类型
|
|
|
|
|
+ String fusertype = getUserFusertype();
|
|
|
|
|
+ //获取用户角色列表
|
|
|
|
|
+ ArrayList<String> listUserRole = getUserRolesList();
|
|
|
//查询对应用户的体系
|
|
//查询对应用户的体系
|
|
|
- String sqlFauthtype = "SELECT fauthtype FROM tagentauth WHERE tagentsid=( SELECT tagentsid FROM tagents WHERE wechat_depid=(SELECT wechat_depid FROM tuser WHERE tuserid= '" + parameter.tuserid + "'))";
|
|
|
|
|
- Rows rowsFauthtype = dbConnect.runSqlQuery(sqlFauthtype);
|
|
|
|
|
- ArrayList<String> listfauthtype = rowsFauthtype.toArrayList("fauthtype");
|
|
|
|
|
|
|
+ ArrayList<String> listUserfauthtype = getUserFauthtypeList();
|
|
|
//查询对应账号下有哪些有权限的目录
|
|
//查询对应账号下有哪些有权限的目录
|
|
|
- SQLFactory sqlFactory = new SQLFactory(this, "查询账号目录");
|
|
|
|
|
- sqlFactory.addParameter("tuserid", parameter.tuserid);
|
|
|
|
|
- sqlFactory.addParameter_in("frole", listRole);
|
|
|
|
|
- sqlFactory.addParameter_in("fauthtype", listfauthtype);
|
|
|
|
|
-
|
|
|
|
|
- String sql = sqlFactory.getSQL();
|
|
|
|
|
- Rows rows = dbConnect.runSqlQuery(sql);
|
|
|
|
|
- ArrayList<String> listFolders = new ArrayList<>();
|
|
|
|
|
- if (!rows.isEmpty()) {
|
|
|
|
|
- for (Row row : rows) {
|
|
|
|
|
- if (row.getString("fpath") == null || row.getString("fpath").equals("")) {
|
|
|
|
|
-
|
|
|
|
|
- } else {
|
|
|
|
|
- listFolders.add(row.getString("fpath"));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- //查询体系
|
|
|
|
|
-
|
|
|
|
|
|
|
+ ArrayList<String> listUserFolders = getUserFolderList(listUserRole, listUserfauthtype);
|
|
|
|
|
|
|
|
|
|
+ ObjectListing listing = getObjectListing(folderPath);
|
|
|
|
|
+ // 遍历所有文件。
|
|
|
|
|
+ List<JSONObject> listFiles = getFiles(listing, folderPath);
|
|
|
// 遍历所有commonPrefix。
|
|
// 遍历所有commonPrefix。
|
|
|
- ArrayList<JSONObject> commonPrefixList = new ArrayList<>();
|
|
|
|
|
- ArrayList<JSONObject> commonPrefixList_temp = new ArrayList<>();
|
|
|
|
|
- for (String commonPrefix : listing.getCommonPrefixes()) {
|
|
|
|
|
- System.err.println(commonPrefix);
|
|
|
|
|
-
|
|
|
|
|
- JSONObject object = new JSONObject();
|
|
|
|
|
- object.put("folderpath", commonPrefix);
|
|
|
|
|
- commonPrefixList_temp.add(object);
|
|
|
|
|
-
|
|
|
|
|
- if (listFolders.size() == 0) {
|
|
|
|
|
-
|
|
|
|
|
- commonPrefixList.add(object);
|
|
|
|
|
- } else {
|
|
|
|
|
- for (String str : listFolders) {
|
|
|
|
|
- if (str.equals(commonPrefix)) {
|
|
|
|
|
- commonPrefixList.add(object);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ List<JSONObject> listFolder = getListFolder(listing, listUserFolders, listUserRole, listUserfauthtype);
|
|
|
|
|
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ArrayList<String> keyStr = new ArrayList<>();
|
|
|
|
|
+ for (JSONObject object : listFolder) {
|
|
|
|
|
+ keyStr.add(object.getString("folderpath"));
|
|
|
}
|
|
}
|
|
|
|
|
+ SQLFactory sqlNameFac = new SQLFactory(this, "查询文件名称");
|
|
|
|
|
+ sqlNameFac.addParameter_in("fpath", keyStr);
|
|
|
|
|
+ String sqlName = sqlNameFac.getSQL();
|
|
|
|
|
+ Rows rowsName = dbConnect.runSqlQuery(sqlName);
|
|
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
|
|
+ object.put("files", listFiles);
|
|
|
|
|
+ object.put("folder", rowsName);
|
|
|
|
|
|
|
|
// 关闭OSSClient。
|
|
// 关闭OSSClient。
|
|
|
ossClient.shutdown();
|
|
ossClient.shutdown();
|
|
|
|
|
+ createRequestLog("资料中心");
|
|
|
|
|
+ return getSucReturnObject().setData(object).toString();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ List<JSONObject> listFiles = new ArrayList<>();
|
|
|
|
|
+ List<JSONObject> listFolder = new ArrayList<>();
|
|
|
|
|
|
|
|
- if (commonPrefixList.size() == 0) {
|
|
|
|
|
- commonPrefixList = commonPrefixList_temp;
|
|
|
|
|
- } else {
|
|
|
|
|
- if (fusertype.equals("经销商")) {
|
|
|
|
|
- ArrayList<JSONObject> commonPrefixList2 = new ArrayList<>();
|
|
|
|
|
- for (JSONObject obj : commonPrefixList) {
|
|
|
|
|
- String fpath = obj.getString("folderpath");
|
|
|
|
|
- //开启双向验证
|
|
|
|
|
- boolean isFrole = false;
|
|
|
|
|
- boolean isFauthtype = false;
|
|
|
|
|
- boolean isTuserid = false;
|
|
|
|
|
-
|
|
|
|
|
- String sqlTemp = "SELECT frole,fauthtype,tuserid FROM tfolderauth t1 LEFT JOIN tfolder t2 ON t1.tfolderid =t2.tfolderid WHERE t2.fpath ='" + fpath + "'";
|
|
|
|
|
- Rows rowsTemp = dbConnect.runSqlQuery(sqlTemp);
|
|
|
|
|
- ArrayList<String> list_Roles = new ArrayList<>();
|
|
|
|
|
- ArrayList<String> list_fauthtype = new ArrayList<>();
|
|
|
|
|
- ArrayList<String> list_tuserid = new ArrayList<>();
|
|
|
|
|
- for (Row row : rowsTemp) {
|
|
|
|
|
- String frole = row.getString("frole");
|
|
|
|
|
- String fauthtype = row.getString("fauthtype");
|
|
|
|
|
- String tuserid = row.getString("tuserid");
|
|
|
|
|
- if (!frole.equals("")) {
|
|
|
|
|
- list_Roles.add(frole);
|
|
|
|
|
- }
|
|
|
|
|
- if (!fauthtype.equals("")) {
|
|
|
|
|
- list_fauthtype.add(fauthtype);
|
|
|
|
|
- }
|
|
|
|
|
- if (!tuserid.equals("0")) {
|
|
|
|
|
- list_tuserid.add(tuserid);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //验证角色
|
|
|
|
|
- if (list_Roles.size() == 0) {
|
|
|
|
|
- isFrole = true;
|
|
|
|
|
- } else {
|
|
|
|
|
- for (String str : list_Roles) {
|
|
|
|
|
- if (listRole.contains(str)) {
|
|
|
|
|
- isFrole = true;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //验证体系
|
|
|
|
|
- if (list_fauthtype.size() == 0) {
|
|
|
|
|
- isFauthtype = true;
|
|
|
|
|
- } else {
|
|
|
|
|
-
|
|
|
|
|
- for (String str : list_fauthtype) {
|
|
|
|
|
- if (listfauthtype.contains(str)) {
|
|
|
|
|
- isFauthtype = true;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- //验证用户
|
|
|
|
|
- if (list_tuserid.size() == 0) {
|
|
|
|
|
- isTuserid = true;
|
|
|
|
|
- } else {
|
|
|
|
|
- for (String str : list_tuserid) {
|
|
|
|
|
- if (parameter.tuserid == str) {
|
|
|
|
|
- isTuserid = true;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (isFrole && isFauthtype && isTuserid) {
|
|
|
|
|
- commonPrefixList2.add(obj);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- System.err.println(list_Roles.size());
|
|
|
|
|
- System.err.println(list_fauthtype.size());
|
|
|
|
|
- System.err.println(list_tuserid.size());
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- commonPrefixList = commonPrefixList2;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 搜索
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String searchFile() {
|
|
|
|
|
+ String keyword = "";
|
|
|
|
|
+ if (content.containsKey("keyword")) {
|
|
|
|
|
+ keyword = content.getString("keyword");
|
|
|
}
|
|
}
|
|
|
|
|
+ String folderPath = "资料中心/";
|
|
|
|
|
+ //获取经销商类型
|
|
|
|
|
+ String fusertype = getUserFusertype();
|
|
|
|
|
+ //获取用户角色列表
|
|
|
|
|
+ ArrayList<String> listUserRole = getUserRolesList();
|
|
|
|
|
+ //查询对应用户的体系
|
|
|
|
|
+ ArrayList<String> listUserfauthtype = getUserFauthtypeList();
|
|
|
|
|
+ //查询对应账号下有哪些有权限的目录
|
|
|
|
|
+ ArrayList<String> listUserFolders = getUserFolderList(listUserRole, listUserfauthtype);
|
|
|
|
|
+ listFolder.clear();
|
|
|
|
|
+ listFiles.clear();
|
|
|
|
|
+ get(folderPath, listUserFolders, listUserRole, listUserfauthtype);
|
|
|
|
|
+// ObjectListing listing = getObjectListing(folderPath);
|
|
|
|
|
+// // 遍历所有文件。
|
|
|
|
|
+// List<JSONObject> listFiles = getFiles(listing, folderPath);
|
|
|
|
|
+// // 遍历所有commonPrefix。
|
|
|
|
|
+// List<JSONObject> listFolder = getListFolder(listing, listUserFolders, listUserRole, listUserfauthtype);
|
|
|
|
|
+
|
|
|
|
|
|
|
|
ArrayList<String> keyStr = new ArrayList<>();
|
|
ArrayList<String> keyStr = new ArrayList<>();
|
|
|
- for (JSONObject object : commonPrefixList) {
|
|
|
|
|
|
|
+ for (JSONObject object : listFolder) {
|
|
|
keyStr.add(object.getString("folderpath"));
|
|
keyStr.add(object.getString("folderpath"));
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
SQLFactory sqlNameFac = new SQLFactory(this, "查询文件名称");
|
|
SQLFactory sqlNameFac = new SQLFactory(this, "查询文件名称");
|
|
|
sqlNameFac.addParameter_in("fpath", keyStr);
|
|
sqlNameFac.addParameter_in("fpath", keyStr);
|
|
|
String sqlName = sqlNameFac.getSQL();
|
|
String sqlName = sqlNameFac.getSQL();
|
|
|
-
|
|
|
|
|
Rows rowsName = dbConnect.runSqlQuery(sqlName);
|
|
Rows rowsName = dbConnect.runSqlQuery(sqlName);
|
|
|
|
|
|
|
|
|
|
+ List<JSONObject> listFiles_tmp = new ArrayList<>();
|
|
|
|
|
+ for (JSONObject jsonObject : listFiles) {
|
|
|
|
|
+ String name = jsonObject.getString("name");
|
|
|
|
|
+ System.err.println();
|
|
|
|
|
+ if (name.contains(keyword)) {
|
|
|
|
|
+ listFiles_tmp.add(jsonObject);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ Rows rows_tmp = new Rows();
|
|
|
|
|
+ for (Row row : rowsName) {
|
|
|
|
|
+ if (row.getString("tfilename").contains(keyword)) {
|
|
|
|
|
+ rows_tmp.add(row);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
JSONObject object = new JSONObject();
|
|
JSONObject object = new JSONObject();
|
|
|
- object.put("files", objectSummaryList);
|
|
|
|
|
- object.put("folder", rowsName);
|
|
|
|
|
|
|
+ object.put("files", listFiles_tmp);
|
|
|
|
|
+ object.put("folder", rows_tmp);
|
|
|
|
|
|
|
|
|
|
+ // 关闭OSSClient。
|
|
|
|
|
+ ossClient.shutdown();
|
|
|
createRequestLog("资料中心");
|
|
createRequestLog("资料中心");
|
|
|
return getSucReturnObject().setData(object).toString();
|
|
return getSucReturnObject().setData(object).toString();
|
|
|
}
|
|
}
|
|
@@ -482,6 +380,12 @@ public class wechatapplet extends Controller {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 添加视频播放记录
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @throws P2Exception
|
|
|
|
|
+ */
|
|
|
public String addViewlog() throws P2Exception {
|
|
public String addViewlog() throws P2Exception {
|
|
|
Long tarchives_scid = content.getLong("tarchives_scid");
|
|
Long tarchives_scid = content.getLong("tarchives_scid");
|
|
|
Long tattachmentid = content.getLong("tattachmentid");
|
|
Long tattachmentid = content.getLong("tattachmentid");
|
|
@@ -507,6 +411,13 @@ public class wechatapplet extends Controller {
|
|
|
return getSucReturnObject().toString();
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 返回视频播放记录
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @throws P2Exception
|
|
|
|
|
+ */
|
|
|
public String selectViewlog() throws P2Exception {
|
|
public String selectViewlog() throws P2Exception {
|
|
|
Long tarchives_scid = content.getLong("tarchives_scid");
|
|
Long tarchives_scid = content.getLong("tarchives_scid");
|
|
|
SQLFactory sqlFactory = new SQLFactory(this, "查询视频播放记录");
|
|
SQLFactory sqlFactory = new SQLFactory(this, "查询视频播放记录");
|
|
@@ -517,4 +428,247 @@ public class wechatapplet extends Controller {
|
|
|
return getSucReturnObject().setData(rows).toString();
|
|
return getSucReturnObject().setData(rows).toString();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取用户角色
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Rows getUserRoles() {
|
|
|
|
|
+ //查询对应用户的角色
|
|
|
|
|
+ String sqlRoles = "SELECT wechat_position ,fusertype FROM tuser WHERE tuserid = '" + parameter.tuserid + "'";
|
|
|
|
|
+ return dbConnect.runSqlQuery(sqlRoles);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ArrayList<String> getUserRolesList() {
|
|
|
|
|
+ return getUserRoles().toArrayList("wechat_position");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 查询用户类型
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String getUserFusertype() {
|
|
|
|
|
+ String fusertype = "经销商";
|
|
|
|
|
+ Rows rows = getUserRoles();
|
|
|
|
|
+ if (!rows.isEmpty()) {
|
|
|
|
|
+ fusertype = rows.get(0).getString("fusertype");
|
|
|
|
|
+ }
|
|
|
|
|
+ return fusertype;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取用户体系
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public ArrayList<String> getUserFauthtypeList() {
|
|
|
|
|
+ String sqlFauthtype = "SELECT fauthtype FROM tagentauth WHERE tagentsid=( SELECT tagentsid FROM tagents WHERE wechat_depid=(SELECT wechat_depid FROM tuser WHERE tuserid= '" + parameter.tuserid + "'))";
|
|
|
|
|
+ return dbConnect.runSqlQuery(sqlFauthtype).toArrayList("fauthtype");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public ArrayList<String> getUserFolderList(ArrayList<String> listRole, ArrayList<String> listfauthtype) {
|
|
|
|
|
+ ArrayList<String> listFolders = new ArrayList<>();
|
|
|
|
|
+ SQLFactory sqlFactory = new SQLFactory(this, "查询账号目录");
|
|
|
|
|
+ sqlFactory.addParameter("tuserid", parameter.tuserid);
|
|
|
|
|
+ sqlFactory.addParameter_in("frole", listRole);
|
|
|
|
|
+ sqlFactory.addParameter_in("fauthtype", listfauthtype);
|
|
|
|
|
+ String sql = sqlFactory.getSQL();
|
|
|
|
|
+ Rows rows = dbConnect.runSqlQuery(sql);
|
|
|
|
|
+ if (!rows.isEmpty()) {
|
|
|
|
|
+ for (Row row : rows) {
|
|
|
|
|
+ if (row.getString("fpath") == null || row.getString("fpath").equals("")) {
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ listFolders.add(row.getString("fpath"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ return listFolders;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ObjectListing getObjectListing(String folderPath) {
|
|
|
|
|
+ // 构造ListObjectsRequest请求。
|
|
|
|
|
+ ListObjectsRequest listObjectsRequest = new ListObjectsRequest(BUCKE_NAME_1).withMaxKeys(1000);
|
|
|
|
|
+ // 设置正斜线(/)为文件夹的分隔符。
|
|
|
|
|
+ listObjectsRequest.setDelimiter("/");
|
|
|
|
|
+ // 列出fun目录下的所有文件和文件夹。
|
|
|
|
|
+ listObjectsRequest.setPrefix(folderPath);
|
|
|
|
|
+ return ossClient.listObjects(listObjectsRequest);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<JSONObject> getFiles(ObjectListing listing, String folderPath) {
|
|
|
|
|
+ List<JSONObject> objectSummaryList = new ArrayList<>();
|
|
|
|
|
+ List<OSSObjectSummary> sums = listing.getObjectSummaries();
|
|
|
|
|
+ //按照时间排序
|
|
|
|
|
+ Collections.sort(sums, (o1, o2) -> {
|
|
|
|
|
+ // TODO Auto-generated method stub
|
|
|
|
|
+ long dateTime1 = o1.getLastModified().getTime();
|
|
|
|
|
+ long dateTime2 = o2.getLastModified().getTime();
|
|
|
|
|
+ if (dateTime1 == dateTime2) {
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //时间正序
|
|
|
|
|
+// return dateTime1 > dateTime2 ? 1 : -1;
|
|
|
|
|
+ //时间倒序
|
|
|
|
|
+ return dateTime1 > dateTime2 ? -1 : 1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ for (OSSObjectSummary objectSummary : sums) {
|
|
|
|
|
+ if (!objectSummary.getKey().equals(folderPath)) {
|
|
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
|
|
+ object.put("key", objectSummary.getKey());
|
|
|
|
|
+ object.put("name", objectSummary.getKey().replace(folderPath, ""));
|
|
|
|
|
+ object.put("size", objectSummary.getSize() / 1024);
|
|
|
|
|
+ object.put("time", getDateTime_Str(objectSummary.getLastModified()));
|
|
|
|
|
+ object.put("url", file_url + "/" + objectSummary.getKey());
|
|
|
|
|
+ objectSummaryList.add(object);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return objectSummaryList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ArrayList<JSONObject> check(ArrayList<JSONObject> commonPrefixList, ArrayList<String> listRole, ArrayList<String> listfauthtype) {
|
|
|
|
|
+ ArrayList<JSONObject> commonPrefixList2 = new ArrayList<>();
|
|
|
|
|
+ for (JSONObject obj : commonPrefixList) {
|
|
|
|
|
+ String fpath = obj.getString("folderpath");
|
|
|
|
|
+ //开启双向验证
|
|
|
|
|
+ boolean isFrole = false;
|
|
|
|
|
+ boolean isFauthtype = false;
|
|
|
|
|
+ boolean isTuserid = false;
|
|
|
|
|
+
|
|
|
|
|
+ String sqlTemp = "SELECT frole,fauthtype,tuserid FROM tfolderauth t1 LEFT JOIN tfolder t2 ON t1.tfolderid =t2.tfolderid WHERE t2.fpath ='" + fpath + "'";
|
|
|
|
|
+ Rows rowsTemp = dbConnect.runSqlQuery(sqlTemp);
|
|
|
|
|
+ ArrayList<String> list_Roles = new ArrayList<>();
|
|
|
|
|
+ ArrayList<String> list_fauthtype = new ArrayList<>();
|
|
|
|
|
+ ArrayList<String> list_tuserid = new ArrayList<>();
|
|
|
|
|
+ for (Row row : rowsTemp) {
|
|
|
|
|
+ String frole = row.getString("frole");
|
|
|
|
|
+ String fauthtype = row.getString("fauthtype");
|
|
|
|
|
+ String tuserid = row.getString("tuserid");
|
|
|
|
|
+ if (!frole.equals("")) {
|
|
|
|
|
+ list_Roles.add(frole);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!fauthtype.equals("")) {
|
|
|
|
|
+ list_fauthtype.add(fauthtype);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!tuserid.equals("0")) {
|
|
|
|
|
+ list_tuserid.add(tuserid);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //验证角色
|
|
|
|
|
+ if (list_Roles.size() == 0) {
|
|
|
|
|
+ isFrole = true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ for (String str : list_Roles) {
|
|
|
|
|
+ if (listRole.contains(str)) {
|
|
|
|
|
+ isFrole = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //验证体系
|
|
|
|
|
+ if (list_fauthtype.size() == 0) {
|
|
|
|
|
+ isFauthtype = true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+
|
|
|
|
|
+ for (String str : list_fauthtype) {
|
|
|
|
|
+ if (listfauthtype.contains(str)) {
|
|
|
|
|
+ isFauthtype = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ //验证用户
|
|
|
|
|
+ if (list_tuserid.size() == 0) {
|
|
|
|
|
+ isTuserid = true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ for (String str : list_tuserid) {
|
|
|
|
|
+ if (parameter.tuserid == str) {
|
|
|
|
|
+ isTuserid = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (isFrole && isFauthtype && isTuserid) {
|
|
|
|
|
+ commonPrefixList2.add(obj);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ System.err.println(list_Roles.size());
|
|
|
|
|
+ System.err.println(list_fauthtype.size());
|
|
|
|
|
+ System.err.println(list_tuserid.size());
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return commonPrefixList2;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ArrayList<JSONObject> getListFolderAll(ObjectListing listing) {
|
|
|
|
|
+ ArrayList<JSONObject> listFolderAll = new ArrayList<>();
|
|
|
|
|
+ for (String commonPrefix : listing.getCommonPrefixes()) {
|
|
|
|
|
+ System.err.println(commonPrefix);
|
|
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
|
|
+ object.put("folderpath", commonPrefix);
|
|
|
|
|
+ listFolderAll.add(object);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ return listFolderAll;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ArrayList<JSONObject> getListFolder(ArrayList<JSONObject> listFolderAll, ArrayList<String> listUserFolders) {
|
|
|
|
|
+ ArrayList<JSONObject> listFolder = new ArrayList<>();
|
|
|
|
|
+ for (JSONObject object : listFolderAll) {
|
|
|
|
|
+ String folderpath = object.getString("folderpath");
|
|
|
|
|
+ if (listUserFolders.size() == 0) {
|
|
|
|
|
+ listFolder.add(object);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ for (String str : listUserFolders) {
|
|
|
|
|
+ if (str.equals(folderpath)) {
|
|
|
|
|
+ listFolder.add(object);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return listFolder;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ArrayList<JSONObject> getListFolder(ObjectListing listing, ArrayList<String> listUserFolders, ArrayList<String> listRole, ArrayList<String> listfauthtype) {
|
|
|
|
|
+ ArrayList<JSONObject> listFolderAll = getListFolderAll(listing);
|
|
|
|
|
+ ArrayList<JSONObject> listFolder = getListFolder(listFolderAll, listUserFolders);
|
|
|
|
|
+ if (listFolder.size() == 0) {
|
|
|
|
|
+ listFolder = listFolderAll;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (fusertype.equals("经销商")) {
|
|
|
|
|
+ //开启双向验证
|
|
|
|
|
+ listFolder = check(listFolder, listRole, listfauthtype);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return listFolder;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public void get(String folderPath, ArrayList<String> listUserFolders, ArrayList<String> listRole, ArrayList<String> listfauthtype) {
|
|
|
|
|
+ ObjectListing listing = getObjectListing(folderPath);
|
|
|
|
|
+ // 遍历所有文件。
|
|
|
|
|
+ listFiles.addAll(getFiles(listing, folderPath));
|
|
|
|
|
+ // 遍历所有commonPrefix。
|
|
|
|
|
+ List<JSONObject> listFolder_temp = getListFolder(listing, listUserFolders, listRole, listfauthtype);
|
|
|
|
|
+ listFolder.addAll(listFolder_temp);
|
|
|
|
|
+ if (listFolder_temp.size() > 0) {
|
|
|
|
|
+ for (JSONObject object : listFolder_temp) {
|
|
|
|
|
+ String path = object.getString("folderpath");
|
|
|
|
|
+ get(path, listUserFolders, listRole, listfauthtype);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|