cjwen 1 год назад
Родитель
Сommit
3199ae5aec

+ 6 - 2
front/admin-front/.env.test

@@ -1,8 +1,12 @@
-NODE_ENV = production
+# NODE_ENV = production
 
 # just a flag
 ENV = 'test'
 
 # base api
-VUE_APP_BASE_API = '/stage-api'
+# VUE_APP_BASE_API = '/stage-api'
+
+VUE_APP_BASE_API = 'http://122.9.130.47:1000/'
+
+VUE_APP_BASE_IP = '122.9.130.47:1000/'
 

+ 1 - 2
front/admin-front/package.json

@@ -20,7 +20,6 @@
     "crypto-js": "^4.1.1",
     "element-ui": "2.13.2",
     "js-cookie": "2.2.0",
-    "less-loader": "^7.3.0",
     "normalize.css": "7.0.0",
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
@@ -32,7 +31,7 @@
     "@vue/cli-plugin-babel": "4.4.4",
     "@vue/cli-plugin-eslint": "4.4.4",
     "@vue/cli-plugin-unit-jest": "4.4.4",
-    "@vue/cli-service": "4.4.4",
+    "@vue/cli-service": "^4.4.4",
     "@vue/test-utils": "1.0.0-beta.29",
     "autoprefixer": "9.5.1",
     "babel-eslint": "10.1.0",

+ 1 - 1
front/admin-front/src/layout/components/AppMain.vue

@@ -24,7 +24,7 @@ export default {
   width: 100%;
   position: relative;
   overflow: hidden;
-  padding: 48px;
+  margin: 48px;
 }
 .fixed-header+.app-main {
   padding-top: 50px;

+ 12 - 3
front/admin-front/src/layout/components/Navbar.vue

@@ -34,8 +34,11 @@
             ></span>
           </div>
           <div class="email">
-            <svg-icon icon-class="people-serach"></svg-icon>
-            <span>查看者</span>
+            <svg-icon
+              icon-class="people-serach"
+              style="width: 13px; height: 13px"
+            ></svg-icon>
+            <span style="width: 50px; margin-left: 5px">查看者</span>
           </div>
           <div class="logout-btn">
             <el-button @click.native="logout" class="logout">
@@ -76,6 +79,7 @@ export default {
       //  url: baseUrl,
       logo: "",
       username: "",
+      nickname: "",
       email: undefined,
       avatar: undefined,
       address: undefined,
@@ -91,6 +95,7 @@ export default {
       Cookies.remove("email");
       Cookies.remove("avatar");
       Cookies.remove("username");
+      Cookies.remove("nickname");
       Cookies.remove("address");
       Cookies.remove("roles");
       Cookies.remove("userId");
@@ -100,6 +105,8 @@ export default {
       this.email = Cookies.get("email");
       this.avatar = Cookies.get("avatar");
       this.username = Cookies.get("username");
+      this.username = Cookies.get("nickname");
+      this.address = Cookies.get("address");
       this.address = Cookies.get("address");
     },
     toggleSideBar() {
@@ -151,6 +158,8 @@ export default {
     font-weight: 400;
     text-align: LEFT;
     color: #888888;
+    display: flex;
+    flex-direction: row;
   }
 
   .logout {
@@ -176,4 +185,4 @@ export default {
     cursor: pointer;
   }
 }
-</style>
+</style>

+ 17 - 3
front/admin-front/src/views/address/index.vue

@@ -48,8 +48,7 @@ export default {
     submitForm(formName) {
       const service = Axios.create({
         // axios中请求配置有baseURL选项,表示请求URL公共部分
-        baseURL:
-          this.url + "ams/address/download/batch-keystore",
+        baseURL: this.url + "ams/address/download/batch-keystore",
         // 超时
         timeout: 10000,
       });
@@ -75,7 +74,22 @@ export default {
           )
             .then((response) => {
               console.log(response.data);
-              this.downloadFile(response.data);
+              let buffer = response.data;
+              let view = new DataView(buffer);
+
+              let str = "";
+              for (let i = 0; i < view.byteLength; i++) {
+                str += String.fromCharCode(view.getUint8(i));
+              }
+              if (str.includes(".json")) {
+                console.log(str.includes(".json")); 
+                this.downloadFile(response.data);
+              }else{
+                const data = JSON.parse(str)
+                console.log(data);
+                console.log(data.message);
+                 this.$message.error(data.message);
+              }
             })
             .catch((e) => {
               console.log(e);

+ 26 - 12
front/admin-front/src/views/dashboard/index.vue

@@ -1,27 +1,41 @@
 <template>
   <div class="dashboard-container">
-    <div class="dashboard-text">name: {{ name }}</div>
+    <div class="dashboard-text">
+      name:
+      {{
+        this.nickname ? this.nickname : this.email ? this.email : this.username
+      }}
+    </div>
   </div>
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
+import Cookies from "js-cookie";
 
 export default {
-  name: 'Dashboard',
-  computed: {
-    ...mapGetters([
-      'name'
-    ])
-  }
-}
+  name: "Dashboard",
+  data() {
+    return {
+      email: undefined,
+      username: undefined,
+      nickname: undefined,
+    };
+  },
+  created() {
+    this.getCookie();
+  },
+  methods: {
+    getCookie() {
+      this.email = Cookies.get("email");
+      this.username = Cookies.get("username");
+      this.nickname = Cookies.get("nickname");
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
 .dashboard {
-  &-container {
-    margin: 30px;
-  }
   &-text {
     font-size: 30px;
     line-height: 46px;

+ 25 - 23
front/admin-front/src/views/login/index.vue

@@ -15,11 +15,7 @@
           }"
         >
           <span :class="isSun ? 'logo-box-sun' : 'logo-box-moon'"></span>
-          <img
-            src="@/assets/images/background-left.png"
-            alt=""
-            class="bg-img"
-          />
+          <img src="@/assets/images/background-left.png" alt="" class="bg-img" />
           <div
             class="desc-chn"
             :style="{
@@ -40,7 +36,7 @@
                 backgroundColor: !isSun ? '#FEEAEA' : '#212121',
               }"
             ></span
-            ><span class="ml-2"
+            ><span class="ml-2" style="margin-top:20px"
               >The world’s first verifiable review platform for NFTs, Coins,<br />
               DAOs, Dapps, and everything in web3</span
             >
@@ -360,25 +356,21 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped>
-.el-input__inner {
-  &::placeholder {
-    font-size: 17px;
-    font-family: "hm-medium";
-    font-weight: 500;
-    text-align: LEFT;
-    color: #2980ff;
-    line-height: 17px;
-  }
-}
+<style  scoped>
+/* // .el-input__inner {
+//   &::placeholder {
+//     font-size: 17px;
+//     font-family: "hm-medium";
+//     font-weight: 500;
+//     text-align: LEFT;
+//     color: #2980ff;
+//     line-height: 17px;
+//   }
+// } */
 .login {
   background: #f9f9f9;
 }
-.login-box {
-  // height: 1080px;
-  margin-top: 40px;
-  position: fixed;
-}
+
 .flex-container {
   display: flex;
   justify-content: center;
@@ -402,6 +394,16 @@ export default {
   background-repeat: no-repeat;
   position: absolute;
 }
+.logo-box-moon {
+  top: 40px;
+  display: flex;
+  width: 164px;
+  height: 40px;
+  /* background-image: url("../../images/NextSign-Moon.png"); */
+  position: relative;
+  background-repeat: no-repeat;
+  left: 13.8%;
+}
 .desc-chn {
   top: 703px;
   display: flex;
@@ -424,7 +426,7 @@ export default {
   width: 5px;
   border-radius: 50%;
   position: relative;
-  top: 4px;
+  top: 24px;
 }
 .desc-en {
   top: 775px;

+ 27 - 82
src/main/java/com/ichaoj/ams/constant/AmsConstant.java

@@ -5,87 +5,71 @@ import cn.hutool.core.util.StrUtil;
 import java.io.File;
 
 /**
- * @author 焦竞健
- * @description TODO
- * @date 2022/4/13 15:21
+ * @author cjwen
  */
 public class AmsConstant {
 
     /**
      * 地址缓存前缀
      */
-    public static final String CACHE_ADDRESS_PREFIX = "ccb:address";
+    public static final String CACHE_ADDRESS_PREFIX = "ams:address";
 
     public static final String WALLET_FILE_PATH =
-            StrUtil.format("C:{}ccb-keystore{}Wallets{}ETH{}", File.separator, File.separator, File.separator, File.separator);
+            StrUtil.format("C:{}ams-keystore{}Wallets{}ETH{}", File.separator, File.separator, File.separator, File.separator);
 
-    public enum AssetType {
+    public enum TaskType {
         /**
-         * 代币
+         * Bridge
          */
-        TOKEN,
+        BRIDGE,
         /**
-         * 主链币
+         * NFT
          */
-        COIN;
-
-        AssetType() {
-        }
-    }
-
-    public enum ChannelType {
+        NFT,
         /**
-         * 托管通道
+         * Swap
          */
-        TRUSTEESHIP,
-        /**
-         * 非托管通道
-         */
-        UNMANAGED;
+        SWAP;
 
-        ChannelType() {
+        TaskType() {
         }
     }
 
-    public enum ChannelStatus {
-        /**
-         * 待审核
-         */
-        CHECK_PEND,
+    public enum AirdropStatus {
         /**
-         * 启用
+         * 未开始
          */
-        ENABLE,
+        NOT_STARTED,
         /**
-         * 禁用
+         * 运行中
          */
-        DISABLE,
+        ONGOING,
         /**
-         * 下架
+         * 未空投
          */
-        SHELVES,
+        NOT_DROPPED,
         /**
-         * 驳回
+         * 已空投
          */
-        REJECT;
+        DROPPED;
 
-        ChannelStatus() {
+        AirdropStatus() {
         }
     }
 
     public enum TransactionStatus {
         /**
-         * 未发起
+         * 未确认
          */
-        NOT_INIT,
+        UNCONFIRMED,
         /**
-         * 已发起
+         * 交易中
          */
-        INIT,
+        PENDING,
         /**
-         * 已取消(仅为销毁状态)
+         * 失败
          */
-        CANCEL,
+        FAILED,
         /**
          * 已确定
          */
@@ -95,45 +79,6 @@ public class AmsConstant {
         }
     }
 
-    public enum UserStatus {
-        /**
-         * 未激活
-         */
-        INACTIVE,
-        /**
-         * 已激活
-         */
-        ACTIVATE,
-        /**
-         * 禁用
-         */
-        DISABLE;
-
-        UserStatus() {
-        }
-    }
-
-
-    public enum TransactionType {
-        /**
-         * 跨链销毁交易
-         */
-        CROSS_DESTROY_TRANSACTION,
-        /**
-         * 跨链增发交易
-         */
-        CROSS_INCREASE_TRANSACTION,
-
-        /**
-         * 普通交易
-         */
-        TRANSACTION,
-
-        TransactionType() {
-
-        }
-    }
-
     public enum NotifyType {
         /**
          * 系统通知

+ 9 - 2
src/main/java/com/ichaoj/ams/controller/AirdropProjectController.java

@@ -1,6 +1,7 @@
 package com.ichaoj.ams.controller;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.ichaoj.ams.constant.AmsConstant;
 import com.ichaoj.ams.entity.AmsAirdropProject;
 import com.ichaoj.ams.request.airdrop.CreateAirdropProject;
 import com.ichaoj.ams.request.airdrop.UpdateAirdropProject;
@@ -13,6 +14,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -34,7 +36,10 @@ public class AirdropProjectController {
     @Operation(summary = "创建空投项目")
     @AuthResource(true)
     public PublicResult<Object> createAirdropProject(@RequestBody CreateAirdropProject createAirdropProject) {
-        airdropProjectService.save(BeanUtil.copyProperties(createAirdropProject, AmsAirdropProject.class));
+        AmsAirdropProject project = BeanUtil.copyProperties(createAirdropProject, AmsAirdropProject.class);
+        project.setCreateTime(LocalDateTime.now());
+        project.setStatus(AmsConstant.AirdropStatus.NOT_STARTED);
+        airdropProjectService.save(project);
         return PublicResult.success();
     }
 
@@ -42,7 +47,9 @@ public class AirdropProjectController {
     @Operation(summary = "修改空投项目")
     @AuthResource(true)
     public PublicResult<Object> updateAirdropProject(@RequestBody @Validated UpdateAirdropProject updateAirdropProject) {
-        airdropProjectService.updateById(BeanUtil.copyProperties(updateAirdropProject, AmsAirdropProject.class));
+        AmsAirdropProject project = BeanUtil.copyProperties(updateAirdropProject, AmsAirdropProject.class);
+        project.setUpdateTime(LocalDateTime.now());
+        airdropProjectService.updateById(project);
         return PublicResult.success();
     }
 

+ 3 - 1
src/main/java/com/ichaoj/ams/entity/AmsAirdropProject.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+
+import com.ichaoj.ams.constant.AmsConstant;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -58,7 +60,7 @@ public class AmsAirdropProject implements Serializable {
     /**
      * 空投状态
      */
-    private String status;
+    private AmsConstant.AirdropStatus status;
 
     /**
      * 创建时间

+ 4 - 2
src/main/java/com/ichaoj/ams/entity/AmsAirdropTask.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+
+import com.ichaoj.ams.constant.AmsConstant;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -57,12 +59,12 @@ public class AmsAirdropTask implements Serializable {
     /**
      * 任务类型
      */
-    private String taskType;
+    private AmsConstant.TaskType taskType;
 
     /**
      * 任务状态;是否完成(0否,1是)
      */
-    private String taskStatus;
+    private Integer taskStatus;
 
     /**
      * 创建时间

+ 7 - 0
src/main/java/com/ichaoj/ams/request/airdrop/CreateAirdropProject.java

@@ -1,5 +1,6 @@
 package com.ichaoj.ams.request.airdrop;
 
+import com.ichaoj.ams.constant.AmsConstant;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -40,4 +41,10 @@ public class CreateAirdropProject {
     private String projectWebsite;
 
 
+    /**
+     * 空投状态
+     */
+    private AmsConstant.AirdropStatus status;
+
+
 }

+ 3 - 2
src/main/java/com/ichaoj/ams/request/airdrop/task/CreateAirdropTask.java

@@ -1,5 +1,6 @@
 package com.ichaoj.ams.request.airdrop.task;
 
+import com.ichaoj.ams.constant.AmsConstant;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -41,12 +42,12 @@ public class CreateAirdropTask {
     /**
      * 任务类型
      */
-    private String taskType;
+    private AmsConstant.TaskType taskType;
 
     /**
      * 任务状态;是否完成(0否,1是)
      */
-    private String taskStatus;
+    private Integer taskStatus;
 
 
 }