Przeglądaj źródła

Merge branch 'master' of http://git.izouma.com/xiongzhu/9th

panhui 4 lat temu
rodzic
commit
a66c64b4fc

+ 0 - 6
src/main/java/com/izouma/nineth/config/Constants.java

@@ -11,15 +11,9 @@ public interface Constants {
 
 
     String DEFAULT_AVATAR = "https://9space-2021.oss-cn-shenzhen.aliyuncs.com/image/2021-11-26-18-49-04fkFHRAhM.jpg";
     String DEFAULT_AVATAR = "https://9space-2021.oss-cn-shenzhen.aliyuncs.com/image/2021-11-26-18-49-04fkFHRAhM.jpg";
 
 
-    String SMS_SIGN_NAME = "身份验证";
-
-    String SMS_TEMPLATE_CODE_GENERIC = "SMS_11685095";
-
     String bizId = "a00e36c5";
     String bizId = "a00e36c5";
 
 
     String kmsKey = "ydtg$@WZ9NH&EB2e";
     String kmsKey = "ydtg$@WZ9NH&EB2e";
 
 
-    String CONTRACT_NAME = "nine_space";
-
     String SMS_TOKEN_SECRET = "rjbcsj39s9mg9r";
     String SMS_TOKEN_SECRET = "rjbcsj39s9mg9r";
 }
 }

+ 11 - 0
src/main/java/com/izouma/nineth/config/GeneralProperties.java

@@ -0,0 +1,11 @@
+package com.izouma.nineth.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@ConfigurationProperties(prefix = "general")
+@Data
+public class GeneralProperties {
+    private String host;
+    private String contractName;
+}

+ 2 - 0
src/main/java/com/izouma/nineth/config/WebMvcConfig.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.config;
 package com.izouma.nineth.config;
 
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
@@ -13,6 +14,7 @@ import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.spring.web.plugins.Docket;
 
 
 @Configuration
 @Configuration
+@EnableConfigurationProperties(GeneralProperties.class)
 public class WebMvcConfig implements WebMvcConfigurer {
 public class WebMvcConfig implements WebMvcConfigurer {
     @Value("${storage.local_path}")
     @Value("${storage.local_path}")
     private String localPath;
     private String localPath;

+ 5 - 3
src/main/java/com/izouma/nineth/service/NFTService.java

@@ -10,6 +10,7 @@ import com.antfinancial.mychain.baas.tool.restclient.model.CallRestBizParam;
 import com.antfinancial.mychain.baas.tool.restclient.model.Method;
 import com.antfinancial.mychain.baas.tool.restclient.model.Method;
 import com.antfinancial.mychain.baas.tool.restclient.model.ReceiptDecoration;
 import com.antfinancial.mychain.baas.tool.restclient.model.ReceiptDecoration;
 import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
 import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import com.izouma.nineth.config.GeneralProperties;
 import com.izouma.nineth.config.Constants;
 import com.izouma.nineth.config.Constants;
 import com.izouma.nineth.dto.NFT;
 import com.izouma.nineth.dto.NFT;
 import com.izouma.nineth.dto.NFTAccount;
 import com.izouma.nineth.dto.NFTAccount;
@@ -30,6 +31,7 @@ import java.math.BigInteger;
 public class NFTService {
 public class NFTService {
     private final RestClient           restClient;
     private final RestClient           restClient;
     private final RestClientProperties restClientProperties;
     private final RestClientProperties restClientProperties;
+    private final GeneralProperties    generalProperties;
 
 
     public NFTAccount createAccount(String username) {
     public NFTAccount createAccount(String username) {
         CallRestBizParam callRestBizParam = CallRestBizParam.builder()
         CallRestBizParam callRestBizParam = CallRestBizParam.builder()
@@ -65,7 +67,7 @@ public class NFTService {
                 .orderId(String.valueOf(new SnowflakeIdWorker(0, 0).nextId()))
                 .orderId(String.valueOf(new SnowflakeIdWorker(0, 0).nextId()))
                 .bizid(restClientProperties.getBizid())
                 .bizid(restClientProperties.getBizid())
                 .account(restClientProperties.getAccount())
                 .account(restClientProperties.getAccount())
-                .contractName(Constants.CONTRACT_NAME)
+                .contractName(generalProperties.getContractName())
                 .methodSignature("mint(identity)")
                 .methodSignature("mint(identity)")
                 .inputParamListStr(jsonArray.toJSONString())
                 .inputParamListStr(jsonArray.toJSONString())
                 .outTypes("[]")//合约返回值类型
                 .outTypes("[]")//合约返回值类型
@@ -112,7 +114,7 @@ public class NFTService {
                 .orderId(String.valueOf(new SnowflakeIdWorker(0, 0).nextId()))
                 .orderId(String.valueOf(new SnowflakeIdWorker(0, 0).nextId()))
                 .bizid(restClientProperties.getBizid())
                 .bizid(restClientProperties.getBizid())
                 .account(restClientProperties.getAccount())
                 .account(restClientProperties.getAccount())
-                .contractName(Constants.CONTRACT_NAME)
+                .contractName(generalProperties.getContractName())
                 .methodSignature("transferFrom(identity,identity,uint256)")
                 .methodSignature("transferFrom(identity,identity,uint256)")
                 .inputParamListStr(jsonArray.toJSONString())
                 .inputParamListStr(jsonArray.toJSONString())
                 .outTypes("[]")//合约返回值类型
                 .outTypes("[]")//合约返回值类型
@@ -157,7 +159,7 @@ public class NFTService {
                 .orderId(String.valueOf(new SnowflakeIdWorker(0, 0).nextId()))
                 .orderId(String.valueOf(new SnowflakeIdWorker(0, 0).nextId()))
                 .bizid(restClientProperties.getBizid())
                 .bizid(restClientProperties.getBizid())
                 .account(restClientProperties.getAccount())
                 .account(restClientProperties.getAccount())
-                .contractName(Constants.CONTRACT_NAME)
+                .contractName(generalProperties.getContractName())
                 .methodSignature("setApprovalForAll(identity,bool)")
                 .methodSignature("setApprovalForAll(identity,bool)")
                 .inputParamListStr(jsonArray.toJSONString())
                 .inputParamListStr(jsonArray.toJSONString())
                 .outTypes("[]")//合约返回值类型
                 .outTypes("[]")//合约返回值类型

+ 5 - 0
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -312,6 +312,11 @@ public class OrderService {
         if (aliChannels.contains(payChannel)) {
         if (aliChannels.contains(payChannel)) {
             return MapUtils.getMap(response, "expend");
             return MapUtils.getMap(response, "expend");
         }
         }
+
+        switch (payChannel){
+            case "alipay":
+                MapUtils.getString(MapUtils.getMap(response,"expend"),"pay_info");
+        }
         return response;
         return response;
     }
     }
 
 

+ 15 - 5
src/main/java/com/izouma/nineth/service/sms/AliSmsService.java

@@ -29,8 +29,14 @@ import java.util.HashMap;
 @Service
 @Service
 @Slf4j
 @Slf4j
 public class AliSmsService implements SmsService {
 public class AliSmsService implements SmsService {
-    private final String accessKeyId     = "LTAI5tEL3wr9XeiyseqKLrEK";
-    private final String accessKeySecret = "I9JzOThjzeJMcpVf6melaMY3nt7ucU";
+    @Value("${aliyun.access-key-id}")
+    private String accessKeyId;
+    @Value("${aliyun.access-key-secret}")
+    private String accessKeySecret;
+    @Value("${aliyun.sms-sign}")
+    private String smsSign;
+    @Value("${aliyun.sms-code}")
+    private String smsCode;
 
 
     @Autowired
     @Autowired
     private SmsRecordRepo smsRecordRepo;
     private SmsRecordRepo smsRecordRepo;
@@ -55,9 +61,13 @@ public class AliSmsService implements SmsService {
         request.setVersion("2017-05-25");
         request.setVersion("2017-05-25");
         request.setAction("SendSms");
         request.setAction("SendSms");
         request.putQueryParameter("PhoneNumbers", phone);
         request.putQueryParameter("PhoneNumbers", phone);
-        request.putQueryParameter("SignName", Constants.SMS_SIGN_NAME);
-        request.putQueryParameter("TemplateCode", Constants.SMS_TEMPLATE_CODE_GENERIC);
-        request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\",\"product\":\"用户\"}");
+        request.putQueryParameter("SignName", smsSign);
+        request.putQueryParameter("TemplateCode", smsCode);
+        if (smsSign.equals("身份验证")) {
+            request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\",\"product\":\"用户\"}");
+        } else {
+            request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");
+        }
         try {
         try {
             CommonResponse response = client.getCommonResponse(request);
             CommonResponse response = client.getCommonResponse(request);
             if (response.getHttpStatus() != 200) {
             if (response.getHttpStatus() != 200) {

+ 0 - 12
src/main/java/com/izouma/nineth/web/OrderPayController.java

@@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
 import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
 import com.github.binarywang.wxpay.constant.WxPayConstants;
 import com.github.binarywang.wxpay.constant.WxPayConstants;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.exception.WxPayException;
-import com.huifu.adapay.core.exception.BaseAdaPayException;
-import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.service.AssetService;
 import com.izouma.nineth.service.AssetService;
 import com.izouma.nineth.service.GiftOrderService;
 import com.izouma.nineth.service.GiftOrderService;
 import com.izouma.nineth.service.OrderService;
 import com.izouma.nineth.service.OrderService;
@@ -20,7 +18,6 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
-import java.util.Arrays;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
 
 
 @Controller
 @Controller
@@ -99,13 +96,4 @@ public class OrderPayController {
         model.addAttribute("ios", ios);
         model.addAttribute("ios", ios);
         model.addAttribute("android", android);
         model.addAttribute("android", android);
     }
     }
-
-    @RequestMapping(value = "/adapay/alipay", method = RequestMethod.GET)
-    @ResponseBody
-    public Object payOrderAdapayAlipay(Long id, String channel) throws BaseAdaPayException {
-        if (!Arrays.asList("alipay", "alipay_qr", "alipay_wap").contains(channel)) {
-            throw new BusinessException("不支持此渠道");
-        }
-        return orderService.payAdapay(id, channel, null);
-    }
 }
 }

+ 0 - 1
src/main/nine-space/package.json

@@ -38,7 +38,6 @@
   "devDependencies": {
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.0",
     "@vue/cli-plugin-babel": "~4.5.0",
     "@vue/cli-plugin-eslint": "~4.5.0",
     "@vue/cli-plugin-eslint": "~4.5.0",
-    "@vue/cli-plugin-pwa": "~4.5.0",
     "@vue/cli-plugin-router": "~4.5.0",
     "@vue/cli-plugin-router": "~4.5.0",
     "@vue/cli-plugin-vuex": "~4.5.0",
     "@vue/cli-plugin-vuex": "~4.5.0",
     "@vue/cli-service": "~4.5.0",
     "@vue/cli-service": "~4.5.0",

+ 3 - 255
src/main/nine-space/yarn.lock

@@ -864,7 +864,7 @@
     "@babel/types" "^7.4.4"
     "@babel/types" "^7.4.4"
     esutils "^2.0.2"
     esutils "^2.0.2"
 
 
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.15.4", "@babel/runtime@^7.3.4", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.11.0", "@babel/runtime@^7.15.4", "@babel/runtime@^7.8.4":
   version "7.15.4"
   version "7.15.4"
   resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz"
   resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz"
   integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
   integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
@@ -1038,7 +1038,7 @@
   resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz"
   resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz"
   integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
   integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
 
 
-"@hapi/joi@^15.0.0", "@hapi/joi@^15.0.1":
+"@hapi/joi@^15.0.1":
   version "15.1.1"
   version "15.1.1"
   resolved "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz"
   resolved "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz"
   integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==
   integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==
@@ -1437,15 +1437,6 @@
     webpack "^4.0.0"
     webpack "^4.0.0"
     yorkie "^2.0.0"
     yorkie "^2.0.0"
 
 
-"@vue/cli-plugin-pwa@~4.5.0":
-  version "4.5.14"
-  resolved "https://registry.npmjs.org/@vue/cli-plugin-pwa/-/cli-plugin-pwa-4.5.14.tgz"
-  integrity sha512-Ikg2+IHSXGf+KFNkDbKDkm0HZOFBMQWVrIv8yipmOG1q7qbYmRF1rrYLvttLZlGa7/P8J8Zv3uFnGxWlmdeJYA==
-  dependencies:
-    "@vue/cli-shared-utils" "^4.5.14"
-    webpack "^4.0.0"
-    workbox-webpack-plugin "^4.3.1"
-
 "@vue/cli-plugin-router@^4.5.14", "@vue/cli-plugin-router@~4.5.0":
 "@vue/cli-plugin-router@^4.5.14", "@vue/cli-plugin-router@~4.5.0":
   version "4.5.14"
   version "4.5.14"
   resolved "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.14.tgz"
   resolved "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.14.tgz"
@@ -2127,13 +2118,6 @@ babel-eslint@^10.1.0:
     eslint-visitor-keys "^1.0.0"
     eslint-visitor-keys "^1.0.0"
     resolve "^1.12.0"
     resolve "^1.12.0"
 
 
-babel-extract-comments@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz"
-  integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==
-  dependencies:
-    babylon "^6.18.0"
-
 babel-helper-vue-jsx-merge-props@^2.0.0:
 babel-helper-vue-jsx-merge-props@^2.0.0:
   version "2.0.3"
   version "2.0.3"
   resolved "https://registry.nlark.com/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
   resolved "https://registry.nlark.com/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
@@ -2180,20 +2164,7 @@ babel-plugin-polyfill-regenerator@^0.2.2:
   dependencies:
   dependencies:
     "@babel/helper-define-polyfill-provider" "^0.2.2"
     "@babel/helper-define-polyfill-provider" "^0.2.2"
 
 
-babel-plugin-syntax-object-rest-spread@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz"
-  integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
-
-babel-plugin-transform-object-rest-spread@^6.26.0:
-  version "6.26.0"
-  resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz"
-  integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
-  dependencies:
-    babel-plugin-syntax-object-rest-spread "^6.8.0"
-    babel-runtime "^6.26.0"
-
-babel-runtime@6.x, babel-runtime@^6.26.0:
+babel-runtime@6.x:
   version "6.26.0"
   version "6.26.0"
   resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
   resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
   integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
   integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -2201,11 +2172,6 @@ babel-runtime@6.x, babel-runtime@^6.26.0:
     core-js "^2.4.0"
     core-js "^2.4.0"
     regenerator-runtime "^0.11.0"
     regenerator-runtime "^0.11.0"
 
 
-babylon@^6.18.0:
-  version "6.18.0"
-  resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz"
-  integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
 balanced-match@^1.0.0:
 balanced-match@^1.0.0:
   version "1.0.2"
   version "1.0.2"
   resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
   resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
@@ -2933,11 +2899,6 @@ commander@~2.19.0:
   resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz"
   resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz"
   integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
   integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
 
 
-common-tags@^1.8.0:
-  version "1.8.0"
-  resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz"
-  integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
-
 commondir@^1.0.1:
 commondir@^1.0.1:
   version "1.0.1"
   version "1.0.1"
   resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
   resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
@@ -4478,15 +4439,6 @@ from2@^2.1.0:
     inherits "^2.0.1"
     inherits "^2.0.1"
     readable-stream "^2.0.0"
     readable-stream "^2.0.0"
 
 
-fs-extra@^4.0.2:
-  version "4.0.3"
-  resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz"
-  integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
-
 fs-extra@^7.0.1:
 fs-extra@^7.0.1:
   version "7.0.1"
   version "7.0.1"
   resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz"
   resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz"
@@ -4553,11 +4505,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
     has "^1.0.3"
     has "^1.0.3"
     has-symbols "^1.0.1"
     has-symbols "^1.0.1"
 
 
-get-own-enumerable-property-symbols@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"
-  integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
-
 get-stdin@^6.0.0:
 get-stdin@^6.0.0:
   version "6.0.0"
   version "6.0.0"
   resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz"
   resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz"
@@ -5393,11 +5340,6 @@ is-number@^7.0.0:
   resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
   resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 
 
-is-obj@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz"
-  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-
 is-obj@^2.0.0:
 is-obj@^2.0.0:
   version "2.0.0"
   version "2.0.0"
   resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz"
   resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz"
@@ -5447,11 +5389,6 @@ is-regex@^1.0.4, is-regex@^1.1.4:
     call-bind "^1.0.2"
     call-bind "^1.0.2"
     has-tostringtag "^1.0.0"
     has-tostringtag "^1.0.0"
 
 
-is-regexp@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz"
-  integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
-
 is-resolvable@^1.0.0:
 is-resolvable@^1.0.0:
   version "1.1.0"
   version "1.1.0"
   resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz"
   resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz"
@@ -5627,13 +5564,6 @@ json-stable-stringify-without-jsonify@^1.0.1:
   resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
   resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
 
-json-stable-stringify@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
-  integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
-  dependencies:
-    jsonify "~0.0.0"
-
 json-stringify-safe@~5.0.1:
 json-stringify-safe@~5.0.1:
   version "5.0.1"
   version "5.0.1"
   resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
   resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
@@ -5670,11 +5600,6 @@ jsonfile@^4.0.0:
   optionalDependencies:
   optionalDependencies:
     graceful-fs "^4.1.6"
     graceful-fs "^4.1.6"
 
 
-jsonify@~0.0.0:
-  version "0.0.0"
-  resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
-  integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-
 jsprim@^1.2.2:
 jsprim@^1.2.2:
   version "1.4.1"
   version "1.4.1"
   resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
   resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
@@ -5823,11 +5748,6 @@ locate-path@^5.0.0:
   dependencies:
   dependencies:
     p-locate "^4.1.0"
     p-locate "^4.1.0"
 
 
-lodash._reinterpolate@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
-  integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-
 lodash.debounce@^4.0.8:
 lodash.debounce@^4.0.8:
   version "4.0.8"
   version "4.0.8"
   resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
   resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
@@ -5853,21 +5773,6 @@ lodash.memoize@^4.1.2:
   resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
   resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
   integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
   integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
 
 
-lodash.template@^4.4.0:
-  version "4.5.0"
-  resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz"
-  integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
-  dependencies:
-    lodash._reinterpolate "^3.0.0"
-    lodash.templatesettings "^4.0.0"
-
-lodash.templatesettings@^4.0.0:
-  version "4.2.0"
-  resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz"
-  integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
-  dependencies:
-    lodash._reinterpolate "^3.0.0"
-
 lodash.transform@^4.6.0:
 lodash.transform@^4.6.0:
   version "4.6.0"
   version "4.6.0"
   resolved "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz"
   resolved "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz"
@@ -7280,11 +7185,6 @@ prettier@^2.2.1:
   resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz"
   resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz"
   integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==
   integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==
 
 
-pretty-bytes@^5.1.0:
-  version "5.6.0"
-  resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
-  integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
-
 pretty-error@^2.0.2:
 pretty-error@^2.0.2:
   version "2.1.2"
   version "2.1.2"
   resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz"
   resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz"
@@ -8370,15 +8270,6 @@ string_decoder@~1.1.1:
   dependencies:
   dependencies:
     safe-buffer "~5.1.0"
     safe-buffer "~5.1.0"
 
 
-stringify-object@^3.3.0:
-  version "3.3.0"
-  resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz"
-  integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
-  dependencies:
-    get-own-enumerable-property-symbols "^3.0.0"
-    is-obj "^1.0.1"
-    is-regexp "^1.0.0"
-
 strip-ansi@^3.0.1:
 strip-ansi@^3.0.1:
   version "3.0.1"
   version "3.0.1"
   resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
   resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
@@ -8407,14 +8298,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
   dependencies:
   dependencies:
     ansi-regex "^5.0.1"
     ansi-regex "^5.0.1"
 
 
-strip-comments@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz"
-  integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==
-  dependencies:
-    babel-extract-comments "^1.0.0"
-    babel-plugin-transform-object-rest-spread "^6.26.0"
-
 strip-eof@^1.0.0:
 strip-eof@^1.0.0:
   version "1.0.0"
   version "1.0.0"
   resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
   resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
@@ -9360,141 +9243,6 @@ word-wrap@~1.2.3:
   resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
   resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
 
-workbox-background-sync@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz"
-  integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-broadcast-update@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz"
-  integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-build@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz"
-  integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==
-  dependencies:
-    "@babel/runtime" "^7.3.4"
-    "@hapi/joi" "^15.0.0"
-    common-tags "^1.8.0"
-    fs-extra "^4.0.2"
-    glob "^7.1.3"
-    lodash.template "^4.4.0"
-    pretty-bytes "^5.1.0"
-    stringify-object "^3.3.0"
-    strip-comments "^1.0.2"
-    workbox-background-sync "^4.3.1"
-    workbox-broadcast-update "^4.3.1"
-    workbox-cacheable-response "^4.3.1"
-    workbox-core "^4.3.1"
-    workbox-expiration "^4.3.1"
-    workbox-google-analytics "^4.3.1"
-    workbox-navigation-preload "^4.3.1"
-    workbox-precaching "^4.3.1"
-    workbox-range-requests "^4.3.1"
-    workbox-routing "^4.3.1"
-    workbox-strategies "^4.3.1"
-    workbox-streams "^4.3.1"
-    workbox-sw "^4.3.1"
-    workbox-window "^4.3.1"
-
-workbox-cacheable-response@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz"
-  integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-core@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz"
-  integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==
-
-workbox-expiration@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz"
-  integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-google-analytics@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz"
-  integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==
-  dependencies:
-    workbox-background-sync "^4.3.1"
-    workbox-core "^4.3.1"
-    workbox-routing "^4.3.1"
-    workbox-strategies "^4.3.1"
-
-workbox-navigation-preload@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz"
-  integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-precaching@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz"
-  integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-range-requests@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz"
-  integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-routing@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz"
-  integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-strategies@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz"
-  integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-streams@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz"
-  integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==
-  dependencies:
-    workbox-core "^4.3.1"
-
-workbox-sw@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz"
-  integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==
-
-workbox-webpack-plugin@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz"
-  integrity sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==
-  dependencies:
-    "@babel/runtime" "^7.0.0"
-    json-stable-stringify "^1.0.1"
-    workbox-build "^4.3.1"
-
-workbox-window@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz"
-  integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==
-  dependencies:
-    workbox-core "^4.3.1"
-
 worker-farm@^1.7.0:
 worker-farm@^1.7.0:
   version "1.7.0"
   version "1.7.0"
   resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz"
   resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz"

+ 39 - 26
src/main/pc-space/src/views/AssetDetail.vue

@@ -109,7 +109,7 @@
                                 <span>作品描述</span>
                                 <span>作品描述</span>
                             </template>
                             </template>
                             <div class="info5">
                             <div class="info5">
-                                <div v-if="info.detail" v-html="info.detail"></div>
+                                <div class="page-detail" v-if="info.detail" v-html="info.detail"></div>
                                 <div style="padding-left: 0" v-else class="del">铸造者未设置描述</div>
                                 <div style="padding-left: 0" v-else class="del">铸造者未设置描述</div>
                             </div>
                             </div>
                         </el-collapse-item>
                         </el-collapse-item>
@@ -887,6 +887,7 @@ export default {
 /deep/ .el-table__header-wrapper {
 /deep/ .el-table__header-wrapper {
     border-bottom: 0;
     border-bottom: 0;
 }
 }
+
 /deep/ .el-dialog {
 /deep/ .el-dialog {
     width: 340px;
     width: 340px;
     background: #ffffff;
     background: #ffffff;
@@ -908,7 +909,7 @@ export default {
         }
         }
         .title3 {
         .title3 {
             font-size: 16px;
             font-size: 16px;
-            font-weight: 400;
+            font-weight: normal;
             color: #ff4f50;
             color: #ff4f50;
             line-height: 24px;
             line-height: 24px;
         }
         }
@@ -977,14 +978,14 @@ export default {
     }
     }
     .code {
     .code {
         font-size: 12px;
         font-size: 12px;
-        font-weight: 400;
+        font-weight: normal;
         color: #939599;
         color: #939599;
         line-height: 18px;
         line-height: 18px;
         padding-bottom: 12px;
         padding-bottom: 12px;
     }
     }
     .name {
     .name {
         font-size: 12px;
         font-size: 12px;
-        font-weight: 400;
+        font-weight: normal;
         color: #939599;
         color: #939599;
         line-height: 18px;
         line-height: 18px;
         margin-bottom: 6px;
         margin-bottom: 6px;
@@ -1036,6 +1037,13 @@ export default {
 .container {
 .container {
     padding: 50px 50px 200px;
     padding: 50px 50px 200px;
     background: #1a1a1a;
     background: #1a1a1a;
+    /deep/.page-detail {
+        img {
+            display: block;
+            max-width: 100%;
+            height: auto;
+        }
+    }
     .top {
     .top {
         display: flex;
         display: flex;
         justify-content: space-between;
         justify-content: space-between;
@@ -1046,8 +1054,6 @@ export default {
 
 
         .top-info {
         .top-info {
             width: 650px;
             width: 650px;
-            // flex-grow: 1;
-            // margin-left: 30px;
         }
         }
         .init {
         .init {
             background: #1c1e26;
             background: #1c1e26;
@@ -1072,7 +1078,7 @@ export default {
             }
             }
             span {
             span {
                 font-size: 14px;
                 font-size: 14px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
@@ -1085,14 +1091,14 @@ export default {
         .del {
         .del {
             font-size: 14px;
             font-size: 14px;
             width: 220px;
             width: 220px;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
             padding-left: 22px;
             padding-left: 22px;
         }
         }
         .dels {
         .dels {
             font-size: 14px;
             font-size: 14px;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
             margin-left: -11px;
             margin-left: -11px;
@@ -1100,7 +1106,7 @@ export default {
         .Notset {
         .Notset {
             font-size: 14px;
             font-size: 14px;
             width: 96px;
             width: 96px;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
             padding-left: 16px;
             padding-left: 16px;
@@ -1361,13 +1367,13 @@ export default {
             }
             }
             .name2 {
             .name2 {
                 font-size: 14px;
                 font-size: 14px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #ffffff;
                 color: #ffffff;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
             .name3 {
             .name3 {
                 font-size: 12px;
                 font-size: 12px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 22px;
                 line-height: 22px;
             }
             }
@@ -1402,13 +1408,13 @@ export default {
             margin-top: 20px;
             margin-top: 20px;
             .time2 {
             .time2 {
                 font-size: 16px;
                 font-size: 16px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
             span {
             span {
                 font-size: @menuFont2;
                 font-size: @menuFont2;
-                font-weight: 400;
+                font-weight: normal;
                 color: @prim;
                 color: @prim;
                 line-height: 24px;
                 line-height: 24px;
                 margin-left: 6px;
                 margin-left: 6px;
@@ -1441,7 +1447,7 @@ export default {
                 }
                 }
                 .price2 {
                 .price2 {
                     font-size: 14px;
                     font-size: 14px;
-                    font-weight: 400;
+                    font-weight: normal;
                     color: #939599;
                     color: #939599;
                     line-height: 24px;
                     line-height: 24px;
                     margin-top: 13px;
                     margin-top: 13px;
@@ -1463,7 +1469,7 @@ export default {
                 }
                 }
                 span {
                 span {
                     font-size: 16px;
                     font-size: 16px;
-                    font-weight: 400;
+                    font-weight: normal;
                     color: @prim;
                     color: @prim;
                     line-height: 24px;
                     line-height: 24px;
                 }
                 }
@@ -1496,13 +1502,13 @@ export default {
                     .line(@bg:#1f2230);
                     .line(@bg:#1f2230);
                     .box2 {
                     .box2 {
                         font-size: @menuFont1;
                         font-size: @menuFont1;
-                        font-weight: 400;
+                        font-weight: normal;
                         color: #939599;
                         color: #939599;
                         line-height: 22px;
                         line-height: 22px;
                     }
                     }
                     .box3 {
                     .box3 {
                         font-size: @menuFont1;
                         font-size: @menuFont1;
-                        font-weight: 400;
+                        font-weight: normal;
                         color: #ffffff;
                         color: #ffffff;
                         line-height: 22px;
                         line-height: 22px;
                     }
                     }
@@ -1513,7 +1519,7 @@ export default {
                 height: 59px;
                 height: 59px;
                 padding-left: 16px;
                 padding-left: 16px;
                 font-size: 22px;
                 font-size: 22px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 36px;
                 line-height: 36px;
             }
             }
@@ -1564,7 +1570,7 @@ export default {
                 }
                 }
                 .info2 {
                 .info2 {
                     font-size: 16px;
                     font-size: 16px;
-                    font-weight: 400;
+                    font-weight: normal;
                     color: #ffffff;
                     color: #ffffff;
                     line-height: 24px;
                     line-height: 24px;
                 }
                 }
@@ -1588,8 +1594,7 @@ export default {
         .info5 {
         .info5 {
             padding: 10px 16px;
             padding: 10px 16px;
             font-size: 14px;
             font-size: 14px;
-            font-family: PingFangSC-Regular, PingFang SC;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
         }
         }
@@ -1610,13 +1615,13 @@ export default {
             }
             }
             .nft3 {
             .nft3 {
                 font-size: 16px;
                 font-size: 16px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #ffffff;
                 color: #ffffff;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
             .nft5 {
             .nft5 {
                 font-size: 13px;
                 font-size: 13px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 18px;
                 line-height: 18px;
                 margin-top: 2px;
                 margin-top: 2px;
@@ -1689,6 +1694,13 @@ export default {
     &.topcontent {
     &.topcontent {
         margin-top: 0;
         margin-top: 0;
     }
     }
+    /deep/.page-detail {
+        img {
+            width: 600px !important;
+            height: 300px !important;
+            object-fit: cover;
+        }
+    }
     .el-collapse-item__wrap {
     .el-collapse-item__wrap {
         border-radius: 0 0 8px 8px !important;
         border-radius: 0 0 8px 8px !important;
         border-bottom-width: 0;
         border-bottom-width: 0;
@@ -1700,10 +1712,11 @@ export default {
         max-height: 130px;
         max-height: 130px;
         overflow-y: auto;
         overflow-y: auto;
     }
     }
+
     .span-detail {
     .span-detail {
         font-size: 12px;
         font-size: 12px;
         font-family: PingFangSC-Regular, PingFang SC;
         font-family: PingFangSC-Regular, PingFang SC;
-        font-weight: 400;
+        font-weight: normal;
         color: #939599;
         color: #939599;
         line-height: 22px;
         line-height: 22px;
     }
     }
@@ -1759,7 +1772,7 @@ export default {
 .status {
 .status {
     font-size: 20px;
     font-size: 20px;
     font-family: PingFangSC-Regular, PingFang SC;
     font-family: PingFangSC-Regular, PingFang SC;
-    font-weight: 400;
+    font-weight: normal;
     color: #939599;
     color: #939599;
     line-height: 30px;
     line-height: 30px;
     padding: 20px 0 16px;
     padding: 20px 0 16px;

+ 12 - 4
src/main/pc-space/src/views/Collection.vue

@@ -99,7 +99,8 @@ export default {
             select: '0',
             select: '0',
             url: '/collection/all',
             url: '/collection/all',
             list: [],
             list: [],
-            type: 'DEFAULT,AUCTION'
+            type: 'DEFAULT,AUCTION',
+            source: ''
         };
         };
     },
     },
     mixins: [pageableTable],
     mixins: [pageableTable],
@@ -185,16 +186,23 @@ export default {
                     search: this.search,
                     search: this.search,
                     query: {
                     query: {
                         type: this.type,
                         type: this.type,
-                        canResale: this.canResale,
-                        onShelf: true
+                        del: false,
+                        onShelf: true,
+                        source: 'TRANSFER'
                     }
                     }
                 };
                 };
             } else {
             } else {
+                this.source = '';
+                if (this.type !== 'BLIND_BOX') {
+                    this.source = 'OFFICIAL';
+                }
                 return {
                 return {
                     search: this.search,
                     search: this.search,
                     query: {
                     query: {
                         type: this.type,
                         type: this.type,
-                        onShelf: true
+                        onShelf: true,
+                        source: this.source,
+                        del: false
                     }
                     }
                 };
                 };
             }
             }

+ 29 - 28
src/main/pc-space/src/views/CollectionDetail.vue

@@ -117,7 +117,7 @@
                                 <span>作品描述</span>
                                 <span>作品描述</span>
                             </template>
                             </template>
                             <div class="info5">
                             <div class="info5">
-                                <div v-if="info.detail" v-html="info.detail"></div>
+                                <div class="page-detail" v-if="info.detail" v-html="info.detail"></div>
                                 <div style="padding-left: 0" v-else class="del">铸造者未设置描述</div>
                                 <div style="padding-left: 0" v-else class="del">铸造者未设置描述</div>
                             </div>
                             </div>
                         </el-collapse-item>
                         </el-collapse-item>
@@ -554,6 +554,14 @@ export default {
 </script>
 </script>
 <style lang="less" scoped>
 <style lang="less" scoped>
 .container {
 .container {
+    /deep/.page-detail {
+        img {
+            display: block;
+            max-width: 100%;
+            height: auto;
+            object-fit: cover;
+        }
+    }
     padding: 50px 50px 200px;
     padding: 50px 50px 200px;
     background: #1a1a1a;
     background: #1a1a1a;
     .top {
     .top {
@@ -584,16 +592,13 @@ export default {
             }
             }
             .works2 {
             .works2 {
                 font-size: 16px;
                 font-size: 16px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #ffffff;
                 color: #ffffff;
             }
             }
         }
         }
         .title {
         .title {
             display: flex;
             display: flex;
             justify-content: space-between;
             justify-content: space-between;
-            // margin-top: 10px;
-            // padding-right: 100px;
-            // position: relative;
             .title1 {
             .title1 {
                 font-size: 26px;
                 font-size: 26px;
                 font-weight: bold;
                 font-weight: bold;
@@ -601,10 +606,6 @@ export default {
                 .ellipsis();
                 .ellipsis();
             }
             }
             .text {
             .text {
-                // position: absolute;
-                // right: 24px;
-                // top: -10px;
-                // display: flex;
                 .text1 {
                 .text1 {
                     text-align: center;
                     text-align: center;
                     margin-left: 26px;
                     margin-left: 26px;
@@ -619,7 +620,7 @@ export default {
                     }
                     }
                     .text2 {
                     .text2 {
                         font-size: @menuFont2;
                         font-size: @menuFont2;
-                        font-weight: 400;
+                        font-weight: normal;
                         color: #949699;
                         color: #949699;
                         line-height: 24px;
                         line-height: 24px;
                         margin-top: 4px;
                         margin-top: 4px;
@@ -647,13 +648,13 @@ export default {
             }
             }
             .name2 {
             .name2 {
                 font-size: 14px;
                 font-size: 14px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #ffffff;
                 color: #ffffff;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
             .name3 {
             .name3 {
                 font-size: 12px;
                 font-size: 12px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 22px;
                 line-height: 22px;
             }
             }
@@ -689,13 +690,13 @@ export default {
 
 
             .time2 {
             .time2 {
                 font-size: @menuFont2;
                 font-size: @menuFont2;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
             span {
             span {
                 font-size: @menuFont2;
                 font-size: @menuFont2;
-                font-weight: 400;
+                font-weight: normal;
                 color: @prim;
                 color: @prim;
                 line-height: 24px;
                 line-height: 24px;
                 margin-left: 6px;
                 margin-left: 6px;
@@ -729,7 +730,7 @@ export default {
                 }
                 }
                 .price2 {
                 .price2 {
                     font-size: 14px;
                     font-size: 14px;
-                    font-weight: 400;
+                    font-weight: normal;
                     color: #939599;
                     color: #939599;
                     line-height: 24px;
                     line-height: 24px;
                     margin-top: 13px;
                     margin-top: 13px;
@@ -752,7 +753,7 @@ export default {
                 }
                 }
                 span {
                 span {
                     font-size: 16px;
                     font-size: 16px;
-                    font-weight: 400;
+                    font-weight: normal;
                     color: @prim;
                     color: @prim;
                     line-height: 24px;
                     line-height: 24px;
                 }
                 }
@@ -768,14 +769,14 @@ export default {
         .del {
         .del {
             font-size: 14px;
             font-size: 14px;
             width: 210px;
             width: 210px;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
             padding-left: 16px;
             padding-left: 16px;
         }
         }
         .dels {
         .dels {
             font-size: 14px;
             font-size: 14px;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
             margin-left: -11px;
             margin-left: -11px;
@@ -789,7 +790,7 @@ export default {
             .Notset {
             .Notset {
                 font-size: 14px;
                 font-size: 14px;
                 width: 96px;
                 width: 96px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 24px;
                 line-height: 24px;
                 // padding: 0 16px;
                 // padding: 0 16px;
@@ -797,7 +798,7 @@ export default {
             }
             }
             .name-store {
             .name-store {
                 font-size: 14px;
                 font-size: 14px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #ffffff;
                 color: #ffffff;
                 width: 96px;
                 width: 96px;
                 line-height: 24px;
                 line-height: 24px;
@@ -914,14 +915,14 @@ export default {
                     .line(@bg:#1f2230);
                     .line(@bg:#1f2230);
                     .box2 {
                     .box2 {
                         font-size: @menuFont1;
                         font-size: @menuFont1;
-                        font-weight: 400;
+                        font-weight: normal;
                         color: #939599;
                         color: #939599;
                         line-height: 17px;
                         line-height: 17px;
                         margin-top: 5px;
                         margin-top: 5px;
                     }
                     }
                     .box3 {
                     .box3 {
                         font-size: @menuFont1;
                         font-size: @menuFont1;
-                        font-weight: 400;
+                        font-weight: normal;
                         color: #ffffff;
                         color: #ffffff;
                         line-height: 17px;
                         line-height: 17px;
                     }
                     }
@@ -932,7 +933,7 @@ export default {
                 height: 70px;
                 height: 70px;
                 padding-left: 16px;
                 padding-left: 16px;
                 font-size: 20px;
                 font-size: 20px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 30px;
                 line-height: 30px;
             }
             }
@@ -987,7 +988,7 @@ export default {
                 }
                 }
                 .info2 {
                 .info2 {
                     font-size: 16px;
                     font-size: 16px;
-                    font-weight: 400;
+                    font-weight: normal;
                     color: #ffffff;
                     color: #ffffff;
                     line-height: 24px;
                     line-height: 24px;
                 }
                 }
@@ -1048,7 +1049,7 @@ export default {
             padding: 10px 16px;
             padding: 10px 16px;
             font-size: 14px;
             font-size: 14px;
             font-family: PingFangSC-Regular, PingFang SC;
             font-family: PingFangSC-Regular, PingFang SC;
-            font-weight: 400;
+            font-weight: normal;
             color: #939599;
             color: #939599;
             line-height: 24px;
             line-height: 24px;
         }
         }
@@ -1069,13 +1070,13 @@ export default {
             }
             }
             .nft3 {
             .nft3 {
                 font-size: 16px;
                 font-size: 16px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #ffffff;
                 color: #ffffff;
                 line-height: 24px;
                 line-height: 24px;
             }
             }
             .nft5 {
             .nft5 {
                 font-size: 13px;
                 font-size: 13px;
-                font-weight: 400;
+                font-weight: normal;
                 color: #939599;
                 color: #939599;
                 line-height: 18px;
                 line-height: 18px;
                 margin-top: 2px;
                 margin-top: 2px;
@@ -1158,7 +1159,7 @@ export default {
     .span-detail {
     .span-detail {
         font-size: 12px;
         font-size: 12px;
         font-family: PingFangSC-Regular, PingFang SC;
         font-family: PingFangSC-Regular, PingFang SC;
-        font-weight: 400;
+        font-weight: normal;
         color: #939599;
         color: #939599;
         line-height: 22px;
         line-height: 22px;
     }
     }

+ 5 - 4
src/main/pc-space/src/views/Home.vue

@@ -161,7 +161,7 @@ export default {
     },
     },
     mounted() {
     mounted() {
         this.getCreators();
         this.getCreators();
-        this.getProduct().then(res => {
+        this.getProduct('DEFAULT', 'likes,desc;sort,desc;createdAt,desc').then(res => {
             this.products = res;
             this.products = res;
         });
         });
         this.$http
         this.$http
@@ -225,7 +225,7 @@ export default {
             this.showCreator = (this.showCreator + 1) % this.creators.length;
             this.showCreator = (this.showCreator + 1) % this.creators.length;
             this.timer = setTimeout(this.autoChange, 3000);
             this.timer = setTimeout(this.autoChange, 3000);
         },
         },
-        getProduct(type = 'DEFAULT') {
+        getProduct(type = '', sort = 'sort,desc') {
             return this.$http
             return this.$http
                 .post(
                 .post(
                     '/collection/all',
                     '/collection/all',
@@ -235,9 +235,10 @@ export default {
                         query: {
                         query: {
                             type: type,
                             type: type,
                             onShelf: true,
                             onShelf: true,
-                            del: false
+                            del: false,
+                            source: 'OFFICIAL'
                         },
                         },
-                        sort: 'createdAt,desc'
+                        sort: sort
                     },
                     },
                     { body: 'json' }
                     { body: 'json' }
                 )
                 )

+ 28 - 0
src/main/resources/access2.key

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDe6T9Z/aPOIXjy
+BQZwuUugDnwSlsMmZRuEhbxf5FdbiJabKi8wF0XW3d0ZAv9/L9BcqwtvOfYpapfQ
+iXG28EkAhzNyH0s7Zj9AAEqwxQn5JzGoc7Y/lmBaU5atCt3lMfozZL9d0KnPw2gd
++O0UnPy8ZaNsIAeAc2z/uSDCriLaX40jJkptK0jHj4stv0yk/RkLvfX/086FnVdo
+aG+EmhqB78L5CmRSkE2xjUbGN1aLqodxYVH3SutALyghTKntYLQ3jWZJVhmlAhEh
+AFEME6E+ZXi/gvDFqE2nkX/YARVXOkgHKsatnwXBRF57Y2sbIvVcky8Lp7hIMp9s
+6YI0M7X1AgMBAAECggEAA2ES0kjrjkjonfagid3tPRBrJhb9/1uCBsjGOcfq4RrZ
+eaGylG6N4vt7ChGHEQUHChiXtEhzKF6SzZj/zc+ns6fZCk5aJBzhMZWvjC14gLvs
+30pdxWoArO3ed2IWSg6vZc8NrZznrhwevHGVGn5kwHBkAVQc+QAG83t5eSoNojTQ
+Xti8avc2hSgMmwK3Vtan6G4b0LVGrNCa8ODCUyvr5DaPgP5HkKLpHPPqeMtl3ZzA
+Rj6q6vc3q+4djkPwXWKNW2X6Lc8tFwcsErS+3amSXH2s/FFwA6CnBPVwWdvXrmJc
+RBUkQr3as0RWA0WvHD9+EuFXte0KOO9n7iUQSedTowKBgQD0Ep8rCj9vJlKvcrDM
+EoVi8msmKrSHeHCBCnMbwbVf+UELc5k+B0v1VE0lK8iuIhyDJt9mJhCShtP511KG
+0Z1ZlNImhNWd1GB0J/0nJOyA9z7DiKvkQ67HHbSp77yl2t+6pQA5GwSRdDgGEGQq
+r8lEFUL76/v8tEfGgIEcrzEeKwKBgQDpzeQ0NMOHFCSRwzgnyf9xRw52+10FUijo
+BaczDfE1qvcyShqOSZkvTOF0hTUns3o0ejE6Hbj1WjM+rpm7soY5BZerh9tXCy9O
+7bitV0HrDUssxuZseY6ucxG1PBc0CISkt7zz5lFrH001Fq/KCQVZkrRpbIWv/ST8
+2yUpGm6MXwKBgCtWpyaoUi01W9dFgTkrTL4OF5KWYKnxa+Ct71SNZ9xb0P3sj9hg
+yU8NogkopiCtc+yh2Wc0+RpbkIY7gq7nx43hjBNE4P1+eYYGl7/8oXYg8OcdfJAy
+qHU4xByssg2tOK7Wn5yEPKJrRYtmG7MstYs+Tz+WXo83n8sShFqIjSszAoGARboi
+mbM2sN0//ryizbL/XHAdjzxtxH15N6Ef+SjqS+Ad8sCI5PBsH+AkyNRFQv7Srj3W
+2ocstvdcmxAFRyX5w524Wu6canwqcraQwhlozknbppH2/FjQRZSJrmwqW1lC/cDS
+OEby9yiRpQiMCovgLZOD/IDh6ddsJYDRt01rtK8CgYAExSSWQaEYhsgSKkwUeFG/
+t59rHZcQ0kNiJMu3uYRd9qofdsj46xiryp/PlTC91p8lqfFE6swVoxOetKT2eKsN
+F3MPqIgQuA04VVHQrf0CMsIgre79PC+0E5YIqQwNNIgg+GDHg8/zeYrqiHoAnTft
+EGC9vflmm8MEt27jFK9RoA==
+-----END PRIVATE KEY-----

+ 238 - 0
src/main/resources/application.yaml

@@ -83,8 +83,11 @@ aliyun:
   oss-end-point: oss-cn-shenzhen.aliyuncs.com
   oss-end-point: oss-cn-shenzhen.aliyuncs.com
   oss-bucket-name: 9space-2021
   oss-bucket-name: 9space-2021
   oss-domain: https://9space-2021.oss-cn-shenzhen.aliyuncs.com
   oss-domain: https://9space-2021.oss-cn-shenzhen.aliyuncs.com
+  sms-sign: 身份验证
+  sms-code: SMS_11685095
 general:
 general:
   host: https://nfttest.9space.vip
   host: https://nfttest.9space.vip
+  contract-name: nine_space
 mychain:
 mychain:
   rest:
   rest:
     bizid: a00e36c5
     bizid: a00e36c5
@@ -168,3 +171,238 @@ alipay:
   return-url: https://nft.9space.vip/9th/home
   return-url: https://nft.9space.vip/9th/home
 adapay:
 adapay:
   notify-url: https://nft.9space.vip/notify/adapay
   notify-url: https://nft.9space.vip/notify/adapay
+---
+spring:
+  profiles: dev_raex
+  datasource:
+    url: jdbc:mysql://rm-wz9sc79f5255780opqo.mysql.rds.aliyuncs.com/raex_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    username: raex
+    password: K@SdS7e6NTw4CK
+  redis:
+    host: 120.78.171.194
+    password: jV%93RtjUx82Tp
+wx:
+  mp:
+    app_id: wx32eeacbe7e6e7f6e
+    app_secret: fbeb320efd8401ac52c28f4c94389771
+  ma:
+    app_id: wx6517cbf58115c508
+    app_secret: 8af0e8ba28ffddfb7e574e6c7cb6aaf1
+    msg_token: msgToken
+    msg_aes_key: aesKey
+    msg_format: JSON
+  pay:
+    app-id: wx32eeacbe7e6e7f6e
+    mch-id: 1614898941
+    mch-key: A2qWTQzN5EkvgeWgmnnTSY4vV3Y6Xxbj
+    sub-app-id:
+    sub-mch-id:
+    key-path: classpath:/cert/apiclient_cert.p12
+    notify-url: https://raextest.izouma.com/notify/order/weixin
+    refund-notify-url: https://raextest.izouma.com/wx/refundNotify
+    return-url: https://raextest.izouma.com/9th/orders
+storage:
+  provider: aliyun
+  local_path: /var/www/upload/
+aliyun:
+  access-key-id: LTAI5tPoBCiEMSDaS1Q4HKr9
+  access-key-secret: F8ZNiqdH35T7gikBkn6Fq8tgbvdY88
+  oss-end-point: oss-cn-shenzhen.aliyuncs.com
+  oss-bucket-name: raex-meta
+  oss-domain: https://raex-meta.oss-cn-shenzhen.aliyuncs.com
+  sms-sign: 华储艺术品中心
+  sms-code: SMS_228870098
+general:
+  host: https://raextest.izouma.com
+  contract-name: raex
+mychain:
+  rest:
+    bizid: a00e36c5
+    cipher-suit: ec
+    rest-url: https://rest.baas.alipay.com
+    access-id: 1KKUWLPoBDCUECOE
+    access-secret: access2.key
+    tenantid: BDCUECOE
+    read-file-from-ext: false
+    account: raex_official
+    kmsId: W0A6XaE5BDCUECOE1638182878495
+alipay:
+  app-id: 2021002186606637
+  gateway: https://openapi.alipay.com/gateway.do
+  private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGPN0GkL4ISuFSgeqPAjC6VXTdvnkrC6EyYhRBAwurYLYVcHmI+ffx4pcxXLXrbveXwdxNj2GpUCvy56a5ACu9wiaWwxaF6moV3NILKmJa6c7D/4N3Cy4KG7RcLRyeWpdbRFP7OeM+Y8iRFRp0EhAv7btAqimny32ETvIXMyCSvZbI0hrmtwUFMgPW8ofpIoQ5VhMixdKn2niAyQs5TBL1QuVEP1Qe7WRWBrvtwMx1VmI01zkjgFkfehVJwG+BtHYhRwI1pcDrpQv3sDAHl6Qa2th+BkOX1Qtwmzc/SvUELeqJJCsZ+DVr9kTBNke1A4aR2DrlfTezZpl/sN/fJmlTAgMBAAECggEBAIks+K1gX3+RgVX8vHj1RQ7Lr7D56xLUW1ln8SgDmYGfzKANUqxsfRyOdZ0c0G34PbBv36hz/VqSNbdCgWYnLh2DSfytRtqoGXzDbz12uNS8Ue3i0+/+dn9cKHRYayNRAMeRAqQnrI4xskpi1glXrofb8+WNWoHYGCUEFBXltTaUbSNa4saIuvRQvy1i8qZMiAGu+rd/A5TaI+6C7MnHWmYtZ6fFFUeMnJAPRbn4CqNntKmPwF2IrSHaQlefgaQMY6Il56Ws7D9LuNAqn9xuD1duOiK2VrJTLONkEY001iXczZi6JqGzX83ZyDy3kcbQ4BoWRZ6ehwlfPTmovyuKysECgYEA+5QwUXOlStA3wvYbT5lwvva/y51Di/fi5PCnSL3wBEcTXGPkbAvaH6CV6x11nuJWOSgwD1fBMyzAVASDYd0oRQq2+NUBx2v1PFRc3PM4Yp85oZV3eNDyRV9SzhsT1dR/OfuWyJefuCuxJDsBGJpJV0t7e5lq2qqYgZjvpymZhKMCgYEAybizrkcexSnhlnSaY7ENa7fZsIP5l/y3xbtg/65JsARF1VNOLURj9QgbVEoi5FnCMHiYEal25mTZGEWIawCD+XWdkCu4orvxBXU4boIca6R9lfbzJuY3We3Ts3TEXOp1Tkmn5bMM8ImLU9teetufvQa3+Mq7qI21gB0vEXawI5ECgYAZnagh0wWkjXjwCAEV5Mi/GP7Ea7nh+ZaHux09YeGbfeUxxhYPDlHiYIaDTxeX2vHulfH2zfelD0xyAZejElK0XPfudDnfJVXuE6T09mrqV84VbtOgYJ4ahC85PzaQ0jc2HzDmMdIYfZJm3v8okyUel1f2aNOhejdXEsxsF+dCwwKBgQCuV8Zj/+/mNBZW9RxiwSl6SgIJf2b/J1qluRdSpA3n5Sl+AGv2z78cjg8gwJp7heBCCFhWG4M6CTtgsOgAowdtWWv+qOsBKzJapz9Is4dguWAZdsAchKiePuDTnz3/mFwed6Z27lNmqVoT9esogB0FQINMsduTCDcwLQj7LPt7IQKBgCcPiM5BXeOnIQBlQNA4MrP7th4NIltOEIF6uarqUfnzCy52blRJaXf2VTZNgnY4KovdBIl4JukRyk2Iwcg/Kt+IIv/uBQOLNpQm1cSqMpDs+YZlmKjeTfZiqShuUDueypjQ6t4kK8cHRBQs7FEuKfg842MjJHenNt97TNHAoT5P
+  app-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjzdBpC+CErhUoHqjwIwulV03b55KwuhMmIUQQMLq2C2FXB5iPn38eKXMVy16273l8HcTY9hqVAr8uemuQArvcImlsMWhepqFdzSCypiWunOw/+DdwsuChu0XC0cnlqXW0RT+znjPmPIkRUadBIQL+27QKopp8t9hE7yFzMgkr2WyNIa5rcFBTID1vKH6SKEOVYTIsXSp9p4gMkLOUwS9ULlRD9UHu1kVga77cDMdVZiNNc5I4BZH3oVScBvgbR2IUcCNaXA66UL97AwB5ekGtrYfgZDl9ULcJs3P0r1BC3qiSQrGfg1a/ZEwTZHtQOGkdg65X03s2aZf7Df3yZpUwIDAQAB
+  ali-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2KS67bzs6FQ7+PYCm6Zp1gE06VVpuTpV9Mbqn7RqSKmzKZORbL0pG7UyN/Iu3dooNJLQIcxuUDZF6JNgOiX7nxRPyhLud45EXBBR+TUeJCfdSU/7kg2+XBgwD/zzLfj+cAR8SnlmYE5dA81hsM/l1MQrtLTryT/lAHR36eChb6QUnxAwwUZC8QiWDaFerlScJrJG0VJUEKQD6ANV2qP2fmU8IMxNZBT6WMvRvPIN34hCm9B8Kx2Tr8rOjZvwLwVwd1nR5a5mrbwG+kNY7olHW2ICYxJxIxXzypg4jTa5NyW7XR7tdgecRlAGJNxMeBqWwMRmN5l8G2ozV3iOIwhCMQIDAQAB
+  ali-pub-cert-path: classpath:cert/alipayCertPublicKey_RSA2.crt
+  api-key: CRv5YFAOIEGY5PgVf14Y9g==
+  app-cert-path: classpath:cert/appCertPublicKey_2021002120645023.crt
+  root-cert-path: classpath:cert/alipayRootCert.crt
+  notify-url: https://raextest.izouma.com/notify/order/alipay
+  return-url: https://raextest.izouma.com/9th/home
+adapay:
+  app-id: app_0e8d3acb-3d95-4ebb-8445-e470c378a787
+  debug: true
+  prod: true
+  api-key: api_live_dc298e47-c0be-4acf-a962-a2c2988e4cae
+  mock-key: api_test_26e9eee7-6695-4169-90a1-203c6d2cf196
+  public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi3khLvAl4OIsKUbQGqSBqW7qCXcgIdxNhYCKjiUjBP9Pg7HLiFFc30MzFoF0/fGXfGikC5o01h8ek4OtAwhScyQZCEmWGqhfTnPmHT3teUyDaaebMig5O9lnlBFv45V4i8Csnhccwr3nW6W3QFItHD+uFEvy7JRqIRxllK4I/1gUd974MANjQB0fs4hqfCIRVFx6FrV3QY8BrFrmelrfZljlXhiBz+jslGM4ZFbg8hTGesJQOtD6sTwEK72Rt1T9pkpaVk7O8UBzPZ5PEZ9qUA1JnsR5ikv8J+F2b5d0vSkbOv5fMA6pQVuUIZhGTUcIjhvJ/xaasVDCIRRY+EkqtQIDAQAB
+  priv-key: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCLeSEu8CXg4iwpRtAapIGpbuoJdyAh3E2FgIqOJSME/0+DscuIUVzfQzMWgXT98Zd8aKQLmjTWHx6Tg60DCFJzJBkISZYaqF9Oc+YdPe15TINpp5syKDk72WeUEW/jlXiLwKyeFxzCvedbpbdAUi0cP64US/LslGohHGWUrgj/WBR33vgwA2NAHR+ziGp8IhFUXHoWtXdBjwGsWuZ6Wt9mWOVeGIHP6OyUYzhkVuDyFMZ6wlA60PqxPAQrvZG3VP2mSlpWTs7xQHM9nk8Rn2pQDUmexHmKS/wn4XZvl3S9KRs6/l8wDqlBW5QhmEZNRwiOG8n/FpqxUMIhFFj4SSq1AgMBAAECggEAVwmWXbZbzQUXzgJ058t1ZwjiYFnI4ZibgA6BaMdgHUQ+mM6hV0Z/EIzdGtRa8AaOJIMgrGTlSCJPcHshwty0p0oFnRhe5e/g2hKVrfXxdlr7PznrLdfQL7syWkKvcnTar0vj7Rw7RIRCFv1JaIhfwlszBVOIG39a46LW+XvJ/Z5Lk5wB8tkt0xWDUghAU1xP10P8OHcr/x3aFhiyAvmWWr7syYKD1rDAtC+n+6Imb8MvTxwk4Gz1wpM+a7gHeYk2n91yR94G6A2wMSeM80T4hCbYKutD5rkdi5i3hoeIiPiq5qbR0rmI/dudVbGkVT+xkh1z1IsKeYiD2ef4Ddy2QQKBgQDIqOuaml9bnJpKie9Z0ysiPWxc771byxhgx7bwsoJey4x5bcLx+G9IAvkGwWFUl+25jgpeVn/LZ6147e9ozeip7WSKvStniND+CB7SvA5ZDRm7CfqFQub//9Q1DWNfl+ThGAXHMlKgS7DanLqvpUsRdhUOceZwwrdkV93v7by8nQKBgQCx8EdYbxNIEnVI3Y98YCAWtvgBCCa8yurL+9IXe9VKCFGdGRZ4b61GWDNyjUAfiboXY4ByzvX4cdlZ1euVmqMYsEv28xXEFdGxSDpa+oeETbv1U2GEGL4Ups3z28Sx4TGGSyvReyQOhZftIF6vCZtZ8dZMEf8IdxyudJkcJp+u+QKBgBFtemkHF1khlNT8felTSd/DbfH0cIHUdd2R+vWUy3XoP98cBV52sVOTzoUjroxmVaNUDtp6sMa9znc+UxjLKXX4xE64d1iarWwi0GqFIsnhNWblSvjgAqghVBD3hLX8v0g9ieLvH/YEHOwfyKcQuCBgHRwQEG+iucLhTslT4JyRAoGAHa25CKwGKEhD3bJuw0z5LTC5btqgM28Y+Ir5AMe7zIxUqIJNuCrQWOJPOnUK0/fR3SLQgtW4OwcqPIysrZhMScrl8Luczsbg4dPtP813mv6oMgQFSNYjpigoQ9tNFGo+K2sQVPFYEz//FiMHB+TvT3JBzxBVXGEZnJOAEizzB2kCgYEAxUFRiJMcmp5IyGcFlmGP219OcEfzt8BV8s3yoPHPpgYX/zPsH9764UMSZb+FRXFLd8HC+UqqppQ4cq2RmMu5X7H/DWoj9FqXgusjOmZUyWiJgTPC4ktFesuhJhCHuk/50/nXmc6O8rWLwXqXf1XNaoNfzDmZNQ20jRZGr8eVc4g=
+  app-public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwN6xgd6Ad8v2hIIsQVnbt8a3JituR8o4Tc3B5WlcFR55bz4OMqrG/356Ur3cPbc2Fe8ArNd/0gZbC9q56Eb16JTkVNA/fye4SXznWxdyBPR7+guuJZHc/VW2fKH2lfZ2P3Tt0QkKZZoawYOGSMdIvO+WqK44updyax0ikK6JlNQIDAQAB
+  wx-app-id:
+  notify-url: https://raextest.izouma.com/notify/adapay
+---
+spring:
+  profiles: test_raex
+  datasource:
+    url: jdbc:mysql://rm-wz9sc79f5255780opqo.mysql.rds.aliyuncs.com/raex_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    username: raex
+    password: K@SdS7e6NTw4CK
+  redis:
+    host: 120.78.171.194
+    password: jV%93RtjUx82Tp
+wx:
+  mp:
+    app_id: wx32eeacbe7e6e7f6e
+    app_secret: fbeb320efd8401ac52c28f4c94389771
+  ma:
+    app_id: wx6517cbf58115c508
+    app_secret: 8af0e8ba28ffddfb7e574e6c7cb6aaf1
+    msg_token: msgToken
+    msg_aes_key: aesKey
+    msg_format: JSON
+  pay:
+    app-id: wx32eeacbe7e6e7f6e
+    mch-id: 1614898941
+    mch-key: A2qWTQzN5EkvgeWgmnnTSY4vV3Y6Xxbj
+    sub-app-id:
+    sub-mch-id:
+    key-path: classpath:/cert/apiclient_cert.p12
+    notify-url: https://raextest.izouma.com/notify/order/weixin
+    refund-notify-url: https://raextest.izouma.com/wx/refundNotify
+    return-url: https://raextest.izouma.com/9th/orders
+storage:
+  provider: aliyun
+  local_path: /var/www/upload/
+aliyun:
+  access-key-id: LTAI5tPoBCiEMSDaS1Q4HKr9
+  access-key-secret: F8ZNiqdH35T7gikBkn6Fq8tgbvdY88
+  oss-end-point: oss-cn-shenzhen.aliyuncs.com
+  oss-bucket-name: raex-meta
+  oss-domain: https://raex-meta.oss-cn-shenzhen.aliyuncs.com
+  sms-sign: 华储艺术品中心
+  sms-code: SMS_228870098
+general:
+  host: https://raextest.izouma.com
+  contract-name: raex
+mychain:
+  rest:
+    bizid: a00e36c5
+    cipher-suit: ec
+    rest-url: https://rest.baas.alipay.com
+    access-id: 1KKUWLPoBDCUECOE
+    access-secret: access2.key
+    tenantid: BDCUECOE
+    read-file-from-ext: false
+    account: raex_official
+    kmsId: W0A6XaE5BDCUECOE1638182878495
+alipay:
+  app-id: 2021002186606637
+  gateway: https://openapi.alipay.com/gateway.do
+  private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGPN0GkL4ISuFSgeqPAjC6VXTdvnkrC6EyYhRBAwurYLYVcHmI+ffx4pcxXLXrbveXwdxNj2GpUCvy56a5ACu9wiaWwxaF6moV3NILKmJa6c7D/4N3Cy4KG7RcLRyeWpdbRFP7OeM+Y8iRFRp0EhAv7btAqimny32ETvIXMyCSvZbI0hrmtwUFMgPW8ofpIoQ5VhMixdKn2niAyQs5TBL1QuVEP1Qe7WRWBrvtwMx1VmI01zkjgFkfehVJwG+BtHYhRwI1pcDrpQv3sDAHl6Qa2th+BkOX1Qtwmzc/SvUELeqJJCsZ+DVr9kTBNke1A4aR2DrlfTezZpl/sN/fJmlTAgMBAAECggEBAIks+K1gX3+RgVX8vHj1RQ7Lr7D56xLUW1ln8SgDmYGfzKANUqxsfRyOdZ0c0G34PbBv36hz/VqSNbdCgWYnLh2DSfytRtqoGXzDbz12uNS8Ue3i0+/+dn9cKHRYayNRAMeRAqQnrI4xskpi1glXrofb8+WNWoHYGCUEFBXltTaUbSNa4saIuvRQvy1i8qZMiAGu+rd/A5TaI+6C7MnHWmYtZ6fFFUeMnJAPRbn4CqNntKmPwF2IrSHaQlefgaQMY6Il56Ws7D9LuNAqn9xuD1duOiK2VrJTLONkEY001iXczZi6JqGzX83ZyDy3kcbQ4BoWRZ6ehwlfPTmovyuKysECgYEA+5QwUXOlStA3wvYbT5lwvva/y51Di/fi5PCnSL3wBEcTXGPkbAvaH6CV6x11nuJWOSgwD1fBMyzAVASDYd0oRQq2+NUBx2v1PFRc3PM4Yp85oZV3eNDyRV9SzhsT1dR/OfuWyJefuCuxJDsBGJpJV0t7e5lq2qqYgZjvpymZhKMCgYEAybizrkcexSnhlnSaY7ENa7fZsIP5l/y3xbtg/65JsARF1VNOLURj9QgbVEoi5FnCMHiYEal25mTZGEWIawCD+XWdkCu4orvxBXU4boIca6R9lfbzJuY3We3Ts3TEXOp1Tkmn5bMM8ImLU9teetufvQa3+Mq7qI21gB0vEXawI5ECgYAZnagh0wWkjXjwCAEV5Mi/GP7Ea7nh+ZaHux09YeGbfeUxxhYPDlHiYIaDTxeX2vHulfH2zfelD0xyAZejElK0XPfudDnfJVXuE6T09mrqV84VbtOgYJ4ahC85PzaQ0jc2HzDmMdIYfZJm3v8okyUel1f2aNOhejdXEsxsF+dCwwKBgQCuV8Zj/+/mNBZW9RxiwSl6SgIJf2b/J1qluRdSpA3n5Sl+AGv2z78cjg8gwJp7heBCCFhWG4M6CTtgsOgAowdtWWv+qOsBKzJapz9Is4dguWAZdsAchKiePuDTnz3/mFwed6Z27lNmqVoT9esogB0FQINMsduTCDcwLQj7LPt7IQKBgCcPiM5BXeOnIQBlQNA4MrP7th4NIltOEIF6uarqUfnzCy52blRJaXf2VTZNgnY4KovdBIl4JukRyk2Iwcg/Kt+IIv/uBQOLNpQm1cSqMpDs+YZlmKjeTfZiqShuUDueypjQ6t4kK8cHRBQs7FEuKfg842MjJHenNt97TNHAoT5P
+  app-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjzdBpC+CErhUoHqjwIwulV03b55KwuhMmIUQQMLq2C2FXB5iPn38eKXMVy16273l8HcTY9hqVAr8uemuQArvcImlsMWhepqFdzSCypiWunOw/+DdwsuChu0XC0cnlqXW0RT+znjPmPIkRUadBIQL+27QKopp8t9hE7yFzMgkr2WyNIa5rcFBTID1vKH6SKEOVYTIsXSp9p4gMkLOUwS9ULlRD9UHu1kVga77cDMdVZiNNc5I4BZH3oVScBvgbR2IUcCNaXA66UL97AwB5ekGtrYfgZDl9ULcJs3P0r1BC3qiSQrGfg1a/ZEwTZHtQOGkdg65X03s2aZf7Df3yZpUwIDAQAB
+  ali-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2KS67bzs6FQ7+PYCm6Zp1gE06VVpuTpV9Mbqn7RqSKmzKZORbL0pG7UyN/Iu3dooNJLQIcxuUDZF6JNgOiX7nxRPyhLud45EXBBR+TUeJCfdSU/7kg2+XBgwD/zzLfj+cAR8SnlmYE5dA81hsM/l1MQrtLTryT/lAHR36eChb6QUnxAwwUZC8QiWDaFerlScJrJG0VJUEKQD6ANV2qP2fmU8IMxNZBT6WMvRvPIN34hCm9B8Kx2Tr8rOjZvwLwVwd1nR5a5mrbwG+kNY7olHW2ICYxJxIxXzypg4jTa5NyW7XR7tdgecRlAGJNxMeBqWwMRmN5l8G2ozV3iOIwhCMQIDAQAB
+  ali-pub-cert-path: classpath:cert/alipayCertPublicKey_RSA2.crt
+  api-key: CRv5YFAOIEGY5PgVf14Y9g==
+  app-cert-path: classpath:cert/appCertPublicKey_2021002120645023.crt
+  root-cert-path: classpath:cert/alipayRootCert.crt
+  notify-url: https://raextest.izouma.com/notify/order/alipay
+  return-url: https://raextest.izouma.com/9th/home
+adapay:
+  app-id: app_0e8d3acb-3d95-4ebb-8445-e470c378a787
+  debug: true
+  prod: true
+  api-key: api_live_dc298e47-c0be-4acf-a962-a2c2988e4cae
+  mock-key: api_test_26e9eee7-6695-4169-90a1-203c6d2cf196
+  public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi3khLvAl4OIsKUbQGqSBqW7qCXcgIdxNhYCKjiUjBP9Pg7HLiFFc30MzFoF0/fGXfGikC5o01h8ek4OtAwhScyQZCEmWGqhfTnPmHT3teUyDaaebMig5O9lnlBFv45V4i8Csnhccwr3nW6W3QFItHD+uFEvy7JRqIRxllK4I/1gUd974MANjQB0fs4hqfCIRVFx6FrV3QY8BrFrmelrfZljlXhiBz+jslGM4ZFbg8hTGesJQOtD6sTwEK72Rt1T9pkpaVk7O8UBzPZ5PEZ9qUA1JnsR5ikv8J+F2b5d0vSkbOv5fMA6pQVuUIZhGTUcIjhvJ/xaasVDCIRRY+EkqtQIDAQAB
+  priv-key: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCLeSEu8CXg4iwpRtAapIGpbuoJdyAh3E2FgIqOJSME/0+DscuIUVzfQzMWgXT98Zd8aKQLmjTWHx6Tg60DCFJzJBkISZYaqF9Oc+YdPe15TINpp5syKDk72WeUEW/jlXiLwKyeFxzCvedbpbdAUi0cP64US/LslGohHGWUrgj/WBR33vgwA2NAHR+ziGp8IhFUXHoWtXdBjwGsWuZ6Wt9mWOVeGIHP6OyUYzhkVuDyFMZ6wlA60PqxPAQrvZG3VP2mSlpWTs7xQHM9nk8Rn2pQDUmexHmKS/wn4XZvl3S9KRs6/l8wDqlBW5QhmEZNRwiOG8n/FpqxUMIhFFj4SSq1AgMBAAECggEAVwmWXbZbzQUXzgJ058t1ZwjiYFnI4ZibgA6BaMdgHUQ+mM6hV0Z/EIzdGtRa8AaOJIMgrGTlSCJPcHshwty0p0oFnRhe5e/g2hKVrfXxdlr7PznrLdfQL7syWkKvcnTar0vj7Rw7RIRCFv1JaIhfwlszBVOIG39a46LW+XvJ/Z5Lk5wB8tkt0xWDUghAU1xP10P8OHcr/x3aFhiyAvmWWr7syYKD1rDAtC+n+6Imb8MvTxwk4Gz1wpM+a7gHeYk2n91yR94G6A2wMSeM80T4hCbYKutD5rkdi5i3hoeIiPiq5qbR0rmI/dudVbGkVT+xkh1z1IsKeYiD2ef4Ddy2QQKBgQDIqOuaml9bnJpKie9Z0ysiPWxc771byxhgx7bwsoJey4x5bcLx+G9IAvkGwWFUl+25jgpeVn/LZ6147e9ozeip7WSKvStniND+CB7SvA5ZDRm7CfqFQub//9Q1DWNfl+ThGAXHMlKgS7DanLqvpUsRdhUOceZwwrdkV93v7by8nQKBgQCx8EdYbxNIEnVI3Y98YCAWtvgBCCa8yurL+9IXe9VKCFGdGRZ4b61GWDNyjUAfiboXY4ByzvX4cdlZ1euVmqMYsEv28xXEFdGxSDpa+oeETbv1U2GEGL4Ups3z28Sx4TGGSyvReyQOhZftIF6vCZtZ8dZMEf8IdxyudJkcJp+u+QKBgBFtemkHF1khlNT8felTSd/DbfH0cIHUdd2R+vWUy3XoP98cBV52sVOTzoUjroxmVaNUDtp6sMa9znc+UxjLKXX4xE64d1iarWwi0GqFIsnhNWblSvjgAqghVBD3hLX8v0g9ieLvH/YEHOwfyKcQuCBgHRwQEG+iucLhTslT4JyRAoGAHa25CKwGKEhD3bJuw0z5LTC5btqgM28Y+Ir5AMe7zIxUqIJNuCrQWOJPOnUK0/fR3SLQgtW4OwcqPIysrZhMScrl8Luczsbg4dPtP813mv6oMgQFSNYjpigoQ9tNFGo+K2sQVPFYEz//FiMHB+TvT3JBzxBVXGEZnJOAEizzB2kCgYEAxUFRiJMcmp5IyGcFlmGP219OcEfzt8BV8s3yoPHPpgYX/zPsH9764UMSZb+FRXFLd8HC+UqqppQ4cq2RmMu5X7H/DWoj9FqXgusjOmZUyWiJgTPC4ktFesuhJhCHuk/50/nXmc6O8rWLwXqXf1XNaoNfzDmZNQ20jRZGr8eVc4g=
+  app-public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwN6xgd6Ad8v2hIIsQVnbt8a3JituR8o4Tc3B5WlcFR55bz4OMqrG/356Ur3cPbc2Fe8ArNd/0gZbC9q56Eb16JTkVNA/fye4SXznWxdyBPR7+guuJZHc/VW2fKH2lfZ2P3Tt0QkKZZoawYOGSMdIvO+WqK44updyax0ikK6JlNQIDAQAB
+  wx-app-id:
+  notify-url: https://raextest.izouma.com/notify/adapay
+---
+spring:
+  profiles: prod_raex
+  datasource:
+    url: jdbc:mysql://rm-wz9sc79f5255780opqo.mysql.rds.aliyuncs.com/raex_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+    username: raex
+    password: K@SdS7e6NTw4CK
+  redis:
+    host: 120.78.171.194
+    password: jV%93RtjUx82Tp
+    database: 1
+wx:
+  mp:
+    app_id: wx32eeacbe7e6e7f6e
+    app_secret: fbeb320efd8401ac52c28f4c94389771
+  ma:
+    app_id: wx6517cbf58115c508
+    app_secret: 8af0e8ba28ffddfb7e574e6c7cb6aaf1
+    msg_token: msgToken
+    msg_aes_key: aesKey
+    msg_format: JSON
+  pay:
+    app-id: wx32eeacbe7e6e7f6e
+    mch-id: 1614898941
+    mch-key: A2qWTQzN5EkvgeWgmnnTSY4vV3Y6Xxbj
+    sub-app-id:
+    sub-mch-id:
+    key-path: classpath:/cert/apiclient_cert.p12
+    notify-url: https://raex.izouma.com/notify/order/weixin
+    refund-notify-url: https://raex.izouma.com/wx/refundNotify
+    return-url: https://raex.izouma.com/9th/orders
+storage:
+  provider: aliyun
+  local_path: /var/www/upload/
+aliyun:
+  access-key-id: LTAI5tPoBCiEMSDaS1Q4HKr9
+  access-key-secret: F8ZNiqdH35T7gikBkn6Fq8tgbvdY88
+  oss-end-point: oss-cn-shenzhen.aliyuncs.com
+  oss-bucket-name: raex-meta
+  oss-domain: https://raex-meta.oss-cn-shenzhen.aliyuncs.com
+  sms-sign: 华储艺术品中心
+  sms-code: SMS_228870098
+general:
+  host: https://raex.izouma.com
+  contract-name: raex
+mychain:
+  rest:
+    bizid: a00e36c5
+    cipher-suit: ec
+    rest-url: https://rest.baas.alipay.com
+    access-id: 1KKUWLPoBDCUECOE
+    access-secret: access2.key
+    tenantid: BDCUECOE
+    read-file-from-ext: false
+    account: raex_official
+    kmsId: W0A6XaE5BDCUECOE1638182878495
+alipay:
+  app-id: 2021002186606637
+  gateway: https://openapi.alipay.com/gateway.do
+  private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGPN0GkL4ISuFSgeqPAjC6VXTdvnkrC6EyYhRBAwurYLYVcHmI+ffx4pcxXLXrbveXwdxNj2GpUCvy56a5ACu9wiaWwxaF6moV3NILKmJa6c7D/4N3Cy4KG7RcLRyeWpdbRFP7OeM+Y8iRFRp0EhAv7btAqimny32ETvIXMyCSvZbI0hrmtwUFMgPW8ofpIoQ5VhMixdKn2niAyQs5TBL1QuVEP1Qe7WRWBrvtwMx1VmI01zkjgFkfehVJwG+BtHYhRwI1pcDrpQv3sDAHl6Qa2th+BkOX1Qtwmzc/SvUELeqJJCsZ+DVr9kTBNke1A4aR2DrlfTezZpl/sN/fJmlTAgMBAAECggEBAIks+K1gX3+RgVX8vHj1RQ7Lr7D56xLUW1ln8SgDmYGfzKANUqxsfRyOdZ0c0G34PbBv36hz/VqSNbdCgWYnLh2DSfytRtqoGXzDbz12uNS8Ue3i0+/+dn9cKHRYayNRAMeRAqQnrI4xskpi1glXrofb8+WNWoHYGCUEFBXltTaUbSNa4saIuvRQvy1i8qZMiAGu+rd/A5TaI+6C7MnHWmYtZ6fFFUeMnJAPRbn4CqNntKmPwF2IrSHaQlefgaQMY6Il56Ws7D9LuNAqn9xuD1duOiK2VrJTLONkEY001iXczZi6JqGzX83ZyDy3kcbQ4BoWRZ6ehwlfPTmovyuKysECgYEA+5QwUXOlStA3wvYbT5lwvva/y51Di/fi5PCnSL3wBEcTXGPkbAvaH6CV6x11nuJWOSgwD1fBMyzAVASDYd0oRQq2+NUBx2v1PFRc3PM4Yp85oZV3eNDyRV9SzhsT1dR/OfuWyJefuCuxJDsBGJpJV0t7e5lq2qqYgZjvpymZhKMCgYEAybizrkcexSnhlnSaY7ENa7fZsIP5l/y3xbtg/65JsARF1VNOLURj9QgbVEoi5FnCMHiYEal25mTZGEWIawCD+XWdkCu4orvxBXU4boIca6R9lfbzJuY3We3Ts3TEXOp1Tkmn5bMM8ImLU9teetufvQa3+Mq7qI21gB0vEXawI5ECgYAZnagh0wWkjXjwCAEV5Mi/GP7Ea7nh+ZaHux09YeGbfeUxxhYPDlHiYIaDTxeX2vHulfH2zfelD0xyAZejElK0XPfudDnfJVXuE6T09mrqV84VbtOgYJ4ahC85PzaQ0jc2HzDmMdIYfZJm3v8okyUel1f2aNOhejdXEsxsF+dCwwKBgQCuV8Zj/+/mNBZW9RxiwSl6SgIJf2b/J1qluRdSpA3n5Sl+AGv2z78cjg8gwJp7heBCCFhWG4M6CTtgsOgAowdtWWv+qOsBKzJapz9Is4dguWAZdsAchKiePuDTnz3/mFwed6Z27lNmqVoT9esogB0FQINMsduTCDcwLQj7LPt7IQKBgCcPiM5BXeOnIQBlQNA4MrP7th4NIltOEIF6uarqUfnzCy52blRJaXf2VTZNgnY4KovdBIl4JukRyk2Iwcg/Kt+IIv/uBQOLNpQm1cSqMpDs+YZlmKjeTfZiqShuUDueypjQ6t4kK8cHRBQs7FEuKfg842MjJHenNt97TNHAoT5P
+  app-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjzdBpC+CErhUoHqjwIwulV03b55KwuhMmIUQQMLq2C2FXB5iPn38eKXMVy16273l8HcTY9hqVAr8uemuQArvcImlsMWhepqFdzSCypiWunOw/+DdwsuChu0XC0cnlqXW0RT+znjPmPIkRUadBIQL+27QKopp8t9hE7yFzMgkr2WyNIa5rcFBTID1vKH6SKEOVYTIsXSp9p4gMkLOUwS9ULlRD9UHu1kVga77cDMdVZiNNc5I4BZH3oVScBvgbR2IUcCNaXA66UL97AwB5ekGtrYfgZDl9ULcJs3P0r1BC3qiSQrGfg1a/ZEwTZHtQOGkdg65X03s2aZf7Df3yZpUwIDAQAB
+  ali-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2KS67bzs6FQ7+PYCm6Zp1gE06VVpuTpV9Mbqn7RqSKmzKZORbL0pG7UyN/Iu3dooNJLQIcxuUDZF6JNgOiX7nxRPyhLud45EXBBR+TUeJCfdSU/7kg2+XBgwD/zzLfj+cAR8SnlmYE5dA81hsM/l1MQrtLTryT/lAHR36eChb6QUnxAwwUZC8QiWDaFerlScJrJG0VJUEKQD6ANV2qP2fmU8IMxNZBT6WMvRvPIN34hCm9B8Kx2Tr8rOjZvwLwVwd1nR5a5mrbwG+kNY7olHW2ICYxJxIxXzypg4jTa5NyW7XR7tdgecRlAGJNxMeBqWwMRmN5l8G2ozV3iOIwhCMQIDAQAB
+  ali-pub-cert-path: classpath:cert/alipayCertPublicKey_RSA2.crt
+  api-key: CRv5YFAOIEGY5PgVf14Y9g==
+  app-cert-path: classpath:cert/appCertPublicKey_2021002120645023.crt
+  root-cert-path: classpath:cert/alipayRootCert.crt
+  notify-url: https://raex.izouma.com/notify/order/alipay
+  return-url: https://raex.izouma.com/9th/home
+adapay:
+  app-id: app_0e8d3acb-3d95-4ebb-8445-e470c378a787
+  debug: true
+  prod: true
+  api-key: api_live_dc298e47-c0be-4acf-a962-a2c2988e4cae
+  mock-key: api_test_26e9eee7-6695-4169-90a1-203c6d2cf196
+  public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi3khLvAl4OIsKUbQGqSBqW7qCXcgIdxNhYCKjiUjBP9Pg7HLiFFc30MzFoF0/fGXfGikC5o01h8ek4OtAwhScyQZCEmWGqhfTnPmHT3teUyDaaebMig5O9lnlBFv45V4i8Csnhccwr3nW6W3QFItHD+uFEvy7JRqIRxllK4I/1gUd974MANjQB0fs4hqfCIRVFx6FrV3QY8BrFrmelrfZljlXhiBz+jslGM4ZFbg8hTGesJQOtD6sTwEK72Rt1T9pkpaVk7O8UBzPZ5PEZ9qUA1JnsR5ikv8J+F2b5d0vSkbOv5fMA6pQVuUIZhGTUcIjhvJ/xaasVDCIRRY+EkqtQIDAQAB
+  priv-key: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCLeSEu8CXg4iwpRtAapIGpbuoJdyAh3E2FgIqOJSME/0+DscuIUVzfQzMWgXT98Zd8aKQLmjTWHx6Tg60DCFJzJBkISZYaqF9Oc+YdPe15TINpp5syKDk72WeUEW/jlXiLwKyeFxzCvedbpbdAUi0cP64US/LslGohHGWUrgj/WBR33vgwA2NAHR+ziGp8IhFUXHoWtXdBjwGsWuZ6Wt9mWOVeGIHP6OyUYzhkVuDyFMZ6wlA60PqxPAQrvZG3VP2mSlpWTs7xQHM9nk8Rn2pQDUmexHmKS/wn4XZvl3S9KRs6/l8wDqlBW5QhmEZNRwiOG8n/FpqxUMIhFFj4SSq1AgMBAAECggEAVwmWXbZbzQUXzgJ058t1ZwjiYFnI4ZibgA6BaMdgHUQ+mM6hV0Z/EIzdGtRa8AaOJIMgrGTlSCJPcHshwty0p0oFnRhe5e/g2hKVrfXxdlr7PznrLdfQL7syWkKvcnTar0vj7Rw7RIRCFv1JaIhfwlszBVOIG39a46LW+XvJ/Z5Lk5wB8tkt0xWDUghAU1xP10P8OHcr/x3aFhiyAvmWWr7syYKD1rDAtC+n+6Imb8MvTxwk4Gz1wpM+a7gHeYk2n91yR94G6A2wMSeM80T4hCbYKutD5rkdi5i3hoeIiPiq5qbR0rmI/dudVbGkVT+xkh1z1IsKeYiD2ef4Ddy2QQKBgQDIqOuaml9bnJpKie9Z0ysiPWxc771byxhgx7bwsoJey4x5bcLx+G9IAvkGwWFUl+25jgpeVn/LZ6147e9ozeip7WSKvStniND+CB7SvA5ZDRm7CfqFQub//9Q1DWNfl+ThGAXHMlKgS7DanLqvpUsRdhUOceZwwrdkV93v7by8nQKBgQCx8EdYbxNIEnVI3Y98YCAWtvgBCCa8yurL+9IXe9VKCFGdGRZ4b61GWDNyjUAfiboXY4ByzvX4cdlZ1euVmqMYsEv28xXEFdGxSDpa+oeETbv1U2GEGL4Ups3z28Sx4TGGSyvReyQOhZftIF6vCZtZ8dZMEf8IdxyudJkcJp+u+QKBgBFtemkHF1khlNT8felTSd/DbfH0cIHUdd2R+vWUy3XoP98cBV52sVOTzoUjroxmVaNUDtp6sMa9znc+UxjLKXX4xE64d1iarWwi0GqFIsnhNWblSvjgAqghVBD3hLX8v0g9ieLvH/YEHOwfyKcQuCBgHRwQEG+iucLhTslT4JyRAoGAHa25CKwGKEhD3bJuw0z5LTC5btqgM28Y+Ir5AMe7zIxUqIJNuCrQWOJPOnUK0/fR3SLQgtW4OwcqPIysrZhMScrl8Luczsbg4dPtP813mv6oMgQFSNYjpigoQ9tNFGo+K2sQVPFYEz//FiMHB+TvT3JBzxBVXGEZnJOAEizzB2kCgYEAxUFRiJMcmp5IyGcFlmGP219OcEfzt8BV8s3yoPHPpgYX/zPsH9764UMSZb+FRXFLd8HC+UqqppQ4cq2RmMu5X7H/DWoj9FqXgusjOmZUyWiJgTPC4ktFesuhJhCHuk/50/nXmc6O8rWLwXqXf1XNaoNfzDmZNQ20jRZGr8eVc4g=
+  app-public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwN6xgd6Ad8v2hIIsQVnbt8a3JituR8o4Tc3B5WlcFR55bz4OMqrG/356Ur3cPbc2Fe8ArNd/0gZbC9q56Eb16JTkVNA/fye4SXznWxdyBPR7+guuJZHc/VW2fKH2lfZ2P3Tt0QkKZZoawYOGSMdIvO+WqK44updyax0ikK6JlNQIDAQAB
+  wx-app-id:
+  notify-url: https://raex.izouma.com/notify/adapay

+ 94 - 0
src/main/resources/logback-spring.xml

@@ -96,4 +96,98 @@
         <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
         <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
     </springProfile>
     </springProfile>
 
 
+    <springProfile name="dev_raex">
+        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+            <encoder>
+                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            </encoder>
+        </appender>
+        <root level="INFO">
+            <appender-ref ref="CONSOLE"/>
+        </root>
+        <logger name="org.hibernate.SQL" level="DEBUG"/>
+        <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
+        <logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG"/>
+        <logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="TRACE"/>
+        <logger name="cn.binarywang.wx.miniapp" level="DEBUG"/>
+        <!--swagger 类型转换异常日志去除-->
+        <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
+        <logger name="org.freemarker" level="DEBUG"/>
+
+        <!-- dingding log -->
+        <appender name="HTTP_INVOKE_LOGGER_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
+            <param name="append" value="true"/>
+            <param name="encoding" value="UTF-8"/>
+            <param name="threshold" value="INFO"/>
+            <encoder>
+                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            </encoder>
+        </appender>
+
+        <!-- ding open sdk log -->
+        <appender name="DING_OPEN_CLIENT_SDK_LOGGER_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
+            <param name="append" value="true"/>
+            <param name="encoding" value="UTF-8"/>
+            <param name="threshold" value="INFO"/>
+            <encoder>
+                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            </encoder>
+        </appender>
+        <logger name="HTTP_INVOKE_LOGGER" additivity="false">
+            <level value="WARN"/>
+            <appender-ref ref="HTTP_INVOKE_LOGGER_APPENDER"/>
+        </logger>
+        <logger name="DING_OPEN_CLIENT_SDK_LOGGER" additivity="false">
+            <level value="WARN"/>
+            <appender-ref ref="DING_OPEN_CLIENT_SDK_LOGGER_APPENDER"/>
+        </logger>
+        <!-- end of dingding log -->
+    </springProfile>
+
+    <springProfile name="test_raex">
+        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+            <encoder>
+                <pattern>${FILE_LOG_PATTERN}</pattern>
+            </encoder>
+            <file>/var/www/9th_test/app.log</file>
+            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                <fileNamePattern>app.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+                <maxFileSize>10MB</maxFileSize>
+                <maxHistory>60</maxHistory>
+            </rollingPolicy>
+        </appender>
+        <root level="INFO">
+            <appender-ref ref="FILE"/>
+        </root>
+        <logger name="org.hibernate.SQL" level="DEBUG"/>
+        <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
+        <logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG"/>
+        <logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="TRACE"/>
+        <logger name="cn.binarywang.wx.miniapp" level="DEBUG"/>
+        <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
+    </springProfile>
+
+    <springProfile name="prod_raex">
+        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+            <encoder>
+                <pattern>${FILE_LOG_PATTERN}</pattern>
+            </encoder>
+            <file>/var/www/9th/app.log</file>
+            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                <fileNamePattern>app.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+                <maxFileSize>10MB</maxFileSize>
+                <maxHistory>60</maxHistory>
+            </rollingPolicy>
+        </appender>
+        <root level="INFO">
+            <appender-ref ref="FILE"/>
+        </root>
+        <logger name="org.hibernate.SQL" level="DEBUG"/>
+        <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
+        <logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG"/>
+        <logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="TRACE"/>
+        <logger name="cn.binarywang.wx.miniapp" level="DEBUG"/>
+        <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
+    </springProfile>
+
 </configuration>
 </configuration>

+ 17 - 0
src/test/java/com/izouma/nineth/service/AdapayServiceTest.java

@@ -3,6 +3,7 @@ package com.izouma.nineth.service;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.huifu.adapay.core.exception.BaseAdaPayException;
 import com.huifu.adapay.core.exception.BaseAdaPayException;
+import com.huifu.adapay.model.AdapayCommon;
 import com.huifu.adapay.model.Payment;
 import com.huifu.adapay.model.Payment;
 import com.izouma.nineth.ApplicationTests;
 import com.izouma.nineth.ApplicationTests;
 import org.junit.Test;
 import org.junit.Test;
@@ -50,6 +51,22 @@ public class AdapayServiceTest extends ApplicationTests {
         System.out.println("payment result=" + JSON.toJSONString(payment, SerializerFeature.PrettyFormat));
         System.out.println("payment result=" + JSON.toJSONString(payment, SerializerFeature.PrettyFormat));
     }
     }
 
 
+    @Test
+    public void testWxPay() throws BaseAdaPayException {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("order_no", "host_wx_lite_params_sdk_" + System.currentTimeMillis());
+        params.put("adapay_func_code", "wxpay.createOrder");
+        params.put("pay_amt", "0.02");
+        params.put("app_id", "app_f8760acc-f4d8-46f6-8f70-d80e36517075");
+        params.put("currency", "cny");
+        params.put("goods_title", "Your goods_title");
+        params.put("goods_desc", "Your goods_desc");
+        params.put("description", "payment Discription");
+        params.put("callback_url", "http://localhost:8080/");
+        Map<String, Object> response = AdapayCommon.requestAdapayUits(params);
+        System.out.println("payment result=" + JSON.toJSONString(response, SerializerFeature.PrettyFormat));
+    }
+
     @Test
     @Test
     public void createMember() throws BaseAdaPayException {
     public void createMember() throws BaseAdaPayException {
         adapayService.createMember(99999999999999L, "15077886171", "熊竹", "321002199408304614");
         adapayService.createMember(99999999999999L, "15077886171", "熊竹", "321002199408304614");

+ 2 - 2
src/test/java/com/izouma/nineth/service/NFTServiceTest.java

@@ -19,8 +19,8 @@ public class NFTServiceTest extends ApplicationTests {
 
 
     @Test
     @Test
     public void createToken() throws Exception {
     public void createToken() throws Exception {
-        for (int i = 0; i < 100; i++) {
-            nftService.createToken("nine-space-official");
+        for (int i = 0; i < 10; i++) {
+            nftService.createToken("raex_official");
         }
         }
     }
     }