wangqifan 4 år sedan
förälder
incheckning
895e5daeb2

+ 24 - 0
pom.xml

@@ -286,6 +286,30 @@
             <artifactId>pngquant4j</artifactId>
             <version>1.0</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.ksyun</groupId>
+            <artifactId>ksc-sdk-java-kvs</artifactId>
+            <version>0.3.8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.ksyun</groupId>
+            <artifactId>ks3-kss-java-sdk</artifactId>
+            <version>1.0.2</version>
+        </dependency>
     </dependencies>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.ksc</groupId>
+                <artifactId>ksc-sdk-java-bom</artifactId>
+                <version>0.2.1</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
 </project>

+ 127 - 0
src/main/java/com/izouma/tcg/service/storage/KS3StorageService.java

@@ -0,0 +1,127 @@
+package com.izouma.tcg.service.storage;
+
+import com.izouma.tcg.exception.BusinessException;
+import com.ksyun.ks3.dto.AccessControlList;
+import com.ksyun.ks3.dto.CannedAccessControlList;
+import com.ksyun.ks3.dto.Grant;
+import com.ksyun.ks3.dto.ObjectMetadata;
+import com.ksyun.ks3.http.HttpClientConfig;
+import com.ksyun.ks3.service.Ks3;
+import com.ksyun.ks3.service.Ks3Client;
+import com.ksyun.ks3.service.Ks3ClientConfig;
+import com.ksyun.ks3.service.request.PutObjectRequest;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.stereotype.Service;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+@Data
+@Service
+@Slf4j
+@EnableConfigurationProperties
+@ConfigurationProperties(prefix = "ksc")
+@ConditionalOnProperty(name = "storage.provider", havingValue = "ksc")
+public class KS3StorageService implements StorageService {
+    private String accessKeyId;
+    private String accessKeySecret;
+    private String ossBucketName;
+    private String ossEndPoint;
+    private String ossDomain;
+
+    @Override
+    public String uploadFromInputStream(InputStream inputStream, String path) {
+        log.info("金山云OSS上传: inputStream -> {}", path);
+        try {
+            String result = upload(inputStream, path, getConfig());
+            log.info("上传成功 {}", result);
+            return result;
+        } catch (Exception e) {
+            log.error("金山云OSS上传失败", e);
+            throw new BusinessException("上传失败", e.getMessage());
+        }
+    }
+
+    @Override
+    public String uploadFromUrl(String url, String path) {
+        log.info("金山云OSS上传: {} -> {}", url, path);
+        try {
+            InputStream inputStream = new URL(url).openStream();
+            String result = upload(inputStream, path, getConfig());
+            log.info("上传成功 {}", result);
+            return result;
+        } catch (Exception e) {
+            log.error("金山云OSS上传失败", e);
+            throw new BusinessException("上传失败", e.getMessage());
+        }
+    }
+
+    private String upload(InputStream inputStream, String path, Ks3ClientConfig config) {
+        Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
+        ObjectMetadata meta = new ObjectMetadata();
+        PutObjectRequest request = new PutObjectRequest(ossBucketName, path, inputStream, meta);
+        request.setCannedAcl(CannedAccessControlList.PublicRead);
+        client.putObject(request);
+        try {
+            inputStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return ossDomain + "/" + path;
+    }
+
+    private Ks3ClientConfig getConfig() {
+        Ks3ClientConfig config = new Ks3ClientConfig();
+
+/**
+ * 设置服务地址
+ * 中国(北京)| ks3-cn-beijing.ksyun.com
+ * 中国(上海)| ks3-cn-shanghai.ksyun.com
+ * 中国(香港)| ks3-cn-hk-1.ksyun.com
+ * 中国(广州)| ks3-cn-guangzhou.ksyun.com
+ * 中国(青岛)| ks3-cn-qingdao.ksyun.com
+ * 金融专区(北京)| ks3-jr-beijing.ksyun.com
+ * 金融专区(上海)| ks3-jr-shanghai.ksyun.com
+ * 俄罗斯 | ks3-rus.ksyun.com
+ * 新加坡 | ks3-sgp.ksyun.com
+ * 如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
+
+ */
+
+        config.setEndpoint(ossEndPoint);   //此处以北京region为例
+
+/**
+ *true:表示以自定义域名访问
+ *false:表示以KS3的外网域名或内网域名访问,默认为false
+
+ */
+
+        config.setDomainMode(false);
+
+        config.setProtocol(Ks3ClientConfig.PROTOCOL.http);
+
+/**
+ *true表示以   endpoint/{bucket}/{key}的方式访问
+ *false表示以  {bucket}.endpoint/{key}的方式访问
+ *如果domainMode设置为true,pathStyleAccess可忽略设置
+
+ */
+
+        config.setPathStyleAccess(false);
+
+
+        HttpClientConfig hconfig = new HttpClientConfig();
+
+//在HttpClientConfig中可以设置httpclient的相关属性,比如代理,超时,重试等。
+
+        config.setHttpClientConfig(hconfig);
+        return config;
+    }
+}

+ 2 - 0
src/main/java/com/izouma/tcg/web/AddressController.java

@@ -7,6 +7,7 @@ import com.izouma.tcg.exception.BusinessException;
 import com.izouma.tcg.repo.AddressRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -19,6 +20,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/address")
 @AllArgsConstructor
+@Api(value = "地址")
 public class AddressController extends BaseController {
     private final AddressService addressService;
     private final AddressRepo    addressRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/MemberInfoController.java

@@ -8,6 +8,7 @@ import com.izouma.tcg.repo.MemberInfoRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.SecurityUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -21,6 +22,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/memberInfo")
 @AllArgsConstructor
+@Api(value = "用户余额")
 public class MemberInfoController extends BaseController {
     private MemberInfoService memberInfoService;
     private MemberInfoRepo    memberInfoRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/card/CardBoxController.java

@@ -10,6 +10,7 @@ import com.izouma.tcg.repo.card.CardBoxRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -22,6 +23,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/cardBox")
 @AllArgsConstructor
+@Api(value = "卡包")
 public class CardBoxController extends BaseController {
     private CardBoxService cardBoxService;
     private CardBoxRepo    cardBoxRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/card/CardCaseController.java

@@ -13,6 +13,7 @@ import com.izouma.tcg.repo.card.CardCaseRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -29,6 +30,7 @@ import java.util.Map;
 @RestController
 @RequestMapping("/cardCase")
 @AllArgsConstructor
+@Api(value = "拼箱")
 public class CardCaseController extends BaseController {
     private CardCaseService cardCaseService;
     private CardCaseRepo    cardCaseRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/card/CollectionController.java

@@ -9,6 +9,7 @@ import com.izouma.tcg.repo.card.CollectionRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -22,6 +23,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/collection")
 @AllArgsConstructor
+@Api(value = "主题")
 public class CollectionController extends BaseController {
     private CollectionService collectionService;
     private CollectionRepo    collectionRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/card/SeriesController.java

@@ -9,6 +9,7 @@ import com.izouma.tcg.repo.card.SeriesRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -21,6 +22,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/series")
 @AllArgsConstructor
+@Api(value = "系列(大)")
 public class SeriesController extends BaseController {
     private final SeriesService seriesService;
     private final SeriesRepo    seriesRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/customizeStore/StoreAuthenticationController.java

@@ -10,6 +10,7 @@ import com.izouma.tcg.repo.customizeStore.StoreAuthenticationRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -22,6 +23,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/storeAuthentication")
 @AllArgsConstructor
+@Api(value = "店铺认证")
 public class StoreAuthenticationController extends BaseController {
     private StoreAuthenticationService storeAuthenticationService;
     private StoreAuthenticationRepo    storeAuthenticationRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/customizeStore/StoreController.java

@@ -10,6 +10,7 @@ import com.izouma.tcg.repo.customizeStore.StoreRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -23,6 +24,7 @@ import java.util.Map;
 @RestController
 @RequestMapping("/store")
 @AllArgsConstructor
+@Api(value = "店铺")
 public class StoreController extends BaseController {
     private final StoreService storeService;
     private final StoreRepo    storeRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/orderInfo/OrderInfoController.java

@@ -14,6 +14,7 @@ import com.izouma.tcg.repo.orderInfo.OrderInfoRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -33,6 +34,7 @@ import java.util.Map;
 @RestController
 @RequestMapping("/orderInfo")
 @AllArgsConstructor
+@Api(value = "订单")
 public class OrderInfoController extends BaseController {
     private OrderInfoService orderInfoService;
     private OrderInfoRepo    orderInfoRepo;

+ 2 - 0
src/main/java/com/izouma/tcg/web/orderInfo/TransactionRecordController.java

@@ -10,6 +10,7 @@ import com.izouma.tcg.repo.orderInfo.TransactionRecordRepo;
 import com.izouma.tcg.utils.ObjUtils;
 import com.izouma.tcg.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -26,6 +27,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/transactionRecord")
 @AllArgsConstructor
+@Api(value = "交易记录")
 public class TransactionRecordController extends BaseController {
     private TransactionRecordService transactionRecordService;
     private TransactionRecordRepo    transactionRecordRepo;

+ 7 - 1
src/main/resources/application.yaml

@@ -75,7 +75,7 @@ wx:
         notifyUrl: http://zhuoka.izouma.com/wx/payNotify
         refundNotifyUrl: http://zhuoka.izouma.com/wx/refundNotify
 storage:
-    provider: aliyun
+    provider: ksc
     local_path: /var/www/upload/
 aliyun:
     access-key-id: PXzJyah5rZfWHIIH
@@ -83,6 +83,12 @@ aliyun:
     oss-end-point: oss-cn-hangzhou.aliyuncs.com
     oss-bucket-name: ticket-exchange
     oss-domain: https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com
+ksc:
+    access-key-id: AKLTwzz8bGSSRIeiu0Adw5IRTA
+    access-key-secret: OKJAHrY+bpm96y66BazNWvmUtgybRldvcOPOCnz9SxCnxT2dm7/NW5v+skiRPVyO3A==
+    oss-end-point: ks3-cn-shanghai.ksyun.com
+    oss-bucket-name: zhuoka
+    oss-domain: https://zhuoka.ks3-cn-shanghai.ksyun.com
 general:
     host: http://zhuoka.izouma.com
 ---

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1238 - 0
zhuoka.sql


Vissa filer visades inte eftersom för många filer har ändrats