Ver Fonte

失效账号查询代码优化

沈静伟 há 3 anos atrás
pai
commit
ccccc2b7d4

+ 8 - 5
src/dsb/com/cnd3b/service/SQL/失效账号查询.sql

@@ -3,10 +3,13 @@ from tenterprise_users t1
          inner join tenterprise t2 on t1.siteid = t2.siteid and (fenddate is null or fenddate > getdate())
          inner join tuserrequestlog t3 on t1.siteid=t3.siteid and t1.tenterprise_userid=t3.tenterprise_userid
          inner join tappmodelauth t5 on t1.siteid = t5.siteid and t5.fisdefault = 1
-         left join tpayinfo t6 on t1.siteid = t6.siteid and ((t1.fusertype = '经销商' and t1.tagentsid = t6.tagentsid) or
-                                                             (t1.fusertype = '企业' and t1.tenterprise_userid = t6.tenterprise_userid)) and
-                                  t6.fbegdate <= GETDATE() and t6.fenddate >= GETDATE()
-where t6.tpayinfoid IS null
-  and ((t1.fusertype = '经销商' and t5.fagentamount > 0) or
+where  ((t1.fusertype = '经销商' and t5.fagentamount > 0) or
        (t1.fusertype = '企业' and t5.fenterpriseuseramount > 0))
+       and exists(
+		   select siteid,tpayinfoid,tagentsid,tenterprise_userid from tpayinfo
+		   where (fbegdate > GETDATE() or fenddate < GETDATE()) and t1.siteid=tpayinfo.siteid and (
+		   (t1.fusertype = '经销商' and t1.tagentsid = tpayinfo.tagentsid) or
+                                                             (t1.fusertype = '企业' and t1.tenterprise_userid = tpayinfo.tenterprise_userid)
+		   )
+        )
 group by t1.tenterprise_userid  having max(t3.flastrequestdate)>DATEADD(DAY,-3, GETDATE())

+ 1 - 0
src/dsb/com/cnd3b/service/UserAutoLogOut.java

@@ -39,6 +39,7 @@ public class UserAutoLogOut extends BaseClass implements Runnable {
             if (parameter.userIdList.containsKey(userid)) {
                 String token = parameter.userIdList.get(userid).getString("token");
                 parameter.tokenlist.remove(token);
+                parameter.userIdList.remove(userid);
                 sqllist.add("update tenterprise_users set accesstoken=null where accesstoken='" + token + "'");
             }
         }

+ 172 - 0
src/dsb/com/cnd3b/utility/obs/BucketTest.java

@@ -0,0 +1,172 @@
+package com.cnd3b.utility.obs;
+
+import com.cnd3b.common.parameter.parameter;
+import com.obs.services.ObsClient;
+import com.obs.services.exception.ObsException;
+import com.obs.services.model.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BucketTest {
+    protected String bucketname;
+    ObsClient obsClient;
+
+    public BucketTest(String siteid) {
+        // 创建ObsClient实例
+        obsClient = new ObsClient("EKJMDXUVJLBGDRCVVVLP", "9EUAXeFmxKjJ5x12lYVTzCCUuIQIjrO6VAyzGr9u", "obs.cn-east-2.myhuaweicloud.com");
+        this.bucketname = siteid.toLowerCase();
+        //a();
+    }
+
+    public void setBucketCors() {
+        BucketCors cors = new BucketCors();
+
+        List<BucketCorsRule> rules = new ArrayList<BucketCorsRule>();
+        BucketCorsRule rule = new BucketCorsRule();
+
+        ArrayList<String> allowedOrigin = new ArrayList<String>();
+// 指定允许跨域请求的来源
+        allowedOrigin.add("*");
+        rule.setAllowedOrigin(allowedOrigin);
+
+        ArrayList<String> allowedMethod = new ArrayList<String>();
+// 指定允许的跨域请求方法(GET/PUT/DELETE/POST/HEAD)
+        allowedMethod.add("GET");
+        allowedMethod.add("HEAD");
+        allowedMethod.add("PUT");
+        allowedMethod.add("POST");
+        allowedMethod.add("DELETE");
+        rule.setAllowedMethod(allowedMethod);
+
+        ArrayList<String> allowedHeader = new ArrayList<String>();
+// 控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否被允许使用
+        allowedHeader.add("*");
+        rule.setAllowedHeader(allowedHeader);
+
+        //ArrayList<String> exposeHeader = new ArrayList<String>();
+// 指定允许用户从应用程序中访问的header
+//        exposeHeader.add("x-obs-expose-header");
+//        rule.setExposeHeader(exposeHeader);
+
+// 指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,单位为秒
+        rule.setMaxAgeSecond(3600);
+        rules.add(rule);
+        cors.setRules(rules);
+        obsClient.setBucketCors(bucketname, cors);
+    }
+
+    public String getBucketName() {
+        return this.bucketname;
+    }
+
+
+    /**
+     * 创建桶
+     */
+    public boolean create() {
+        // 创建桶
+        try {
+            ObsBucket obsBucket = new ObsBucket();
+            obsBucket.setBucketName(bucketname);
+            // 设置桶访问权限为公共读写
+            obsBucket.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ_WRITE);
+            // 设置桶区域位置
+            obsBucket.setLocation(parameter.Bucket_location());
+            // 创建桶
+            HeaderResponse response = obsClient.createBucket(obsBucket);
+            setBucketCors();
+        } catch (ObsException e) {
+            // 创建桶失败
+            System.out.println("HTTP Code: " + e.getResponseCode());
+            System.out.println("Error Code:" + e.getErrorCode());
+            System.out.println("Error Message: " + e.getErrorMessage());
+
+            System.out.println("Request ID:" + e.getErrorRequestId());
+            System.out.println("Host ID:" + e.getErrorHostId());
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 是否已存在桶
+     *
+     * @return
+     */
+    public boolean isAllReadyUsed() {
+        return obsClient.headBucket(bucketname);
+    }
+
+
+    /**
+     * 删除桶
+     *
+     * @return
+     */
+    public void delete() {
+        // 删除桶
+        obsClient.deleteBucket(bucketname);
+    }
+
+    /**
+     * 设置桶配额,单位G
+     */
+    public void setVolume(long volume) {
+        BucketQuota quota = new BucketQuota(1024 * 1024 * 1024 * volume);
+        obsClient.setBucketQuota(bucketname, quota);
+    }
+
+    /**
+     * 获取桶配额,单位字节
+     */
+    public long getMaxVolume() {
+        BucketQuota quota = obsClient.getBucketQuota(bucketname);
+        return quota.getBucketQuota();
+    }
+
+    /**
+     * 获取桶存量
+     *
+     * @return
+     */
+    public long getVolume() {
+        BucketStorageInfo storageInfo = obsClient.getBucketStorageInfo(bucketname);
+        return storageInfo.getSize();
+    }
+
+    /**
+     * 获取文件数量
+     *
+     * @return
+     */
+    public long getFileCount() {
+        BucketStorageInfo storageInfo = obsClient.getBucketStorageInfo(bucketname);
+        return storageInfo.getObjectNumber();
+    }
+
+    public void getFiles() {
+        ListObjectsRequest request = new ListObjectsRequest(bucketname);
+        // 设置文件夹对象名"dir/"为前缀
+        //request.setPrefix("dir/");
+        request.setMaxKeys(1000);
+        ObjectListing result;
+        int i = 0;
+        do {
+            result = obsClient.listObjects(request);
+            for (ObsObject obsObject : result.getObjects()) {
+                String name=obsObject.getObjectKey();
+                if(!(name.contains("s_")||name.contains("c_")||name.contains("hls"))){
+                    System.out.println(obsObject.getObjectKey());
+                }
+                //System.out.println("\t" + obsObject.getOwner());
+            }
+            request.setMarker(result.getNextMarker());
+        } while (result.isTruncated());
+    }
+
+    public static void main(String[] args) {
+        BucketTest bucket = new BucketTest("BCDQ");
+        bucket.getFiles();
+    }
+}