Pārlūkot izejas kodu

打分模板历史数据查询

Zhangbw 3 mēneši atpakaļ
vecāks
revīzija
a558fed88d

+ 102 - 8
dist/dev/mp-weixin/pages/index/index.js

@@ -10,6 +10,7 @@ const _sfc_main = {
     const hasSearched = common_vendor.ref(false);
     const errorMsg = common_vendor.ref("");
     const result = common_vendor.ref(null);
+    const historyData = common_vendor.ref(null);
     const suggestions = common_vendor.ref([]);
     const showDropdown = common_vendor.ref(false);
     const isLoggedIn = common_vendor.ref(false);
@@ -103,14 +104,22 @@ const _sfc_main = {
       hasSearched.value = true;
       errorMsg.value = "";
       result.value = null;
+      historyData.value = null;
       suggestions.value = [];
       showDropdown.value = false;
       try {
-        const res = await utils_api.searchStocks(queryCode);
-        if (res.code === 200 && res.data) {
-          result.value = res.data;
+        const [stockRes, historyRes] = await Promise.all([
+          utils_api.searchStocks(queryCode),
+          utils_api.searchStockHistory(queryCode)
+        ]);
+        if (stockRes.code === 200 && stockRes.data) {
+          result.value = stockRes.data;
         } else {
-          errorMsg.value = res.message || "未查询到相关股票数据";
+          errorMsg.value = stockRes.message || "未查询到相关股票数据";
+        }
+        if (historyRes.code === 200 && historyRes.data && historyRes.data.found) {
+          historyData.value = historyRes.data;
+          console.log("历史数据:", historyData.value);
         }
       } catch (err) {
         errorMsg.value = "网络请求失败,请检查网络连接";
@@ -132,6 +141,41 @@ const _sfc_main = {
         return "price-down";
       return "";
     };
+    const getChangeClass = (value) => {
+      if (value === null || value === void 0)
+        return "";
+      const num = parseFloat(value);
+      if (num > 0)
+        return "price-up";
+      if (num < 0)
+        return "price-down";
+      return "";
+    };
+    const formatPercent = (value) => {
+      if (value === null || value === void 0)
+        return "--";
+      const num = parseFloat(value);
+      const prefix = num > 0 ? "+" : "";
+      return `${prefix}${num.toFixed(2)}%`;
+    };
+    const formatAmount = (value) => {
+      if (!value)
+        return "--";
+      const num = parseFloat(value);
+      if (num >= 1e8) {
+        return (num / 1e8).toFixed(2) + "亿";
+      } else if (num >= 1e4) {
+        return (num / 1e4).toFixed(2) + "万";
+      }
+      return num.toFixed(2);
+    };
+    const formatStrengthScore = (value) => {
+      if (value === null || value === void 0)
+        return "--";
+      const num = parseFloat(value);
+      const prefix = num >= 0 ? "+" : "";
+      return `${prefix}${num.toFixed(2)}`;
+    };
     return (_ctx, _cache) => {
       return common_vendor.e({
         a: common_vendor.o([($event) => keyword.value = $event.detail.value, onKeywordChange]),
@@ -177,9 +221,59 @@ const _sfc_main = {
       }, result.value.score ? {
         D: common_vendor.t(result.value.score)
       } : {}, {
-        E: result.value.history && result.value.history.length > 0
+        E: historyData.value && (historyData.value.strengthScore !== null || historyData.value.highTrend !== null)
+      }, historyData.value && (historyData.value.strengthScore !== null || historyData.value.highTrend !== null) ? common_vendor.e({
+        F: common_vendor.t(historyData.value.recordDate),
+        G: historyData.value.strengthScore !== null && historyData.value.strengthScore !== void 0
+      }, historyData.value.strengthScore !== null && historyData.value.strengthScore !== void 0 ? {
+        H: common_vendor.t(formatStrengthScore(historyData.value.strengthScore)),
+        I: common_vendor.n(historyData.value.strengthScore >= 0 ? "capsule-up" : "capsule-down")
+      } : {}, {
+        J: historyData.value.closePrice
+      }, historyData.value.closePrice ? {
+        K: common_vendor.t(historyData.value.closePrice)
+      } : {}, {
+        L: historyData.value.changePercent
+      }, historyData.value.changePercent ? {
+        M: common_vendor.t(formatPercent(historyData.value.changePercent)),
+        N: common_vendor.n(getChangeClass(historyData.value.changePercent))
+      } : {}, {
+        O: historyData.value.totalAmount
+      }, historyData.value.totalAmount ? {
+        P: common_vendor.t(formatAmount(historyData.value.totalAmount))
+      } : {}, {
+        Q: historyData.value.circulationMarketValue
+      }, historyData.value.circulationMarketValue ? {
+        R: common_vendor.t(formatAmount(historyData.value.circulationMarketValue))
+      } : {}, {
+        S: historyData.value.mainRisePeriod
+      }, historyData.value.mainRisePeriod ? {
+        T: common_vendor.t(historyData.value.mainRisePeriod)
+      } : {}, {
+        U: historyData.value.recentLimitUp
+      }, historyData.value.recentLimitUp ? {
+        V: common_vendor.t(historyData.value.recentLimitUp)
+      } : {}, {
+        W: historyData.value.highTrend !== null && historyData.value.highTrend !== void 0
+      }, historyData.value.highTrend !== null && historyData.value.highTrend !== void 0 ? common_vendor.e({
+        X: historyData.value.dayHighestPrice
+      }, historyData.value.dayHighestPrice ? {
+        Y: common_vendor.t(historyData.value.dayHighestPrice)
+      } : {}, {
+        Z: historyData.value.dayLowestPrice
+      }, historyData.value.dayLowestPrice ? {
+        aa: common_vendor.t(historyData.value.dayLowestPrice)
+      } : {}, {
+        ab: historyData.value.dayClosePrice
+      }, historyData.value.dayClosePrice ? {
+        ac: common_vendor.t(historyData.value.dayClosePrice)
+      } : {}, {
+        ad: common_vendor.t(formatPercent(historyData.value.highTrend)),
+        ae: common_vendor.n(getChangeClass(historyData.value.highTrend))
+      }) : {}) : {}, {
+        af: result.value.history && result.value.history.length > 0
       }, result.value.history && result.value.history.length > 0 ? {
-        F: common_vendor.f(result.value.history, (item, index, i0) => {
+        ag: common_vendor.f(result.value.history, (item, index, i0) => {
           return {
             a: common_vendor.t(item.date),
             b: common_vendor.t(item.score),
@@ -188,9 +282,9 @@ const _sfc_main = {
           };
         })
       } : {}, {
-        G: result.value.factors && result.value.factors.length > 0
+        ah: result.value.factors && result.value.factors.length > 0
       }, result.value.factors && result.value.factors.length > 0 ? {
-        H: common_vendor.f(result.value.factors, (item, index, i0) => {
+        ai: common_vendor.f(result.value.factors, (item, index, i0) => {
           return {
             a: common_vendor.t(item.name),
             b: common_vendor.t(item.value),

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/dev/mp-weixin/pages/index/index.wxml


+ 124 - 0
dist/dev/mp-weixin/pages/index/index.wxss

@@ -330,3 +330,127 @@
 .bottom-safe-area {
   height: 80rpx;
 }
+
+/* 历史数据强度评分样式 */
+.section-date {
+  font-size: 24rpx;
+  font-weight: 400;
+  color: #9da3b5;
+  margin-left: 12rpx;
+}
+
+/* 强度评分胶囊标签样式 */
+.history-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 20rpx;
+}
+.history-title {
+  font-size: 30rpx;
+  font-weight: 600;
+  color: #1f1f2e;
+}
+.history-date-tag {
+  font-size: 22rpx;
+  color: #666;
+  background: #f5f6fb;
+  padding: 6rpx 16rpx;
+  border-radius: 20rpx;
+}
+.strength-row {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  background: #fafbfc;
+  border-radius: 12rpx;
+  padding: 16rpx 20rpx;
+  margin-bottom: 16rpx;
+}
+.strength-label {
+  font-size: 26rpx;
+  color: #666;
+  font-weight: 500;
+}
+.strength-capsule {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  padding: 10rpx 24rpx;
+  border-radius: 999rpx;
+  white-space: nowrap;
+}
+.capsule-up {
+  background-color: #F54545;
+}
+.capsule-down {
+  background-color: #00C853;
+}
+.capsule-value {
+  font-family: 'DIN', 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;
+  font-size: 30rpx;
+  font-weight: 700;
+  color: #ffffff;
+  letter-spacing: -1rpx;
+  white-space: nowrap;
+}
+.history-detail-grid {
+  display: flex;
+  flex-wrap: wrap;
+  background: #f8f9fc;
+  border-radius: 16rpx;
+  padding: 16rpx;
+  margin-top: 16rpx;
+}
+.history-detail-item {
+  width: 50%;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 12rpx 16rpx;
+  box-sizing: border-box;
+}
+.detail-label {
+  font-size: 24rpx;
+  color: #9da3b5;
+}
+.detail-value {
+  font-size: 26rpx;
+  font-weight: 600;
+  color: #333;
+}
+.next-day-section {
+  margin-top: 20rpx;
+  padding-top: 16rpx;
+  border-top: 1rpx solid #f1f2f6;
+}
+.next-day-title {
+  font-size: 26rpx;
+  font-weight: 600;
+  color: #1f1f2e;
+  margin-bottom: 12rpx;
+}
+.next-day-grid {
+  display: flex;
+  flex-wrap: wrap;
+  background: #fef9f0;
+  border-radius: 12rpx;
+  padding: 12rpx;
+}
+.next-day-item {
+  width: 50%;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 8rpx 12rpx;
+  box-sizing: border-box;
+}
+.next-day-label {
+  font-size: 22rpx;
+  color: #9da3b5;
+}
+.next-day-value {
+  font-size: 24rpx;
+  font-weight: 600;
+  color: #333;
+}

+ 10 - 1
dist/dev/mp-weixin/utils/api.js

@@ -1,9 +1,10 @@
 "use strict";
 const common_vendor = require("../common/vendor.js");
-const ENV = "dev";
+const ENV = "local";
 const CONFIG = {
   dev: "http://localhost:8081",
   // 开发环境
+  local: "http://10.167.44.71:8081",
   prod: "http://192.168.1.2:8081"
   // 生产环境
 };
@@ -269,6 +270,13 @@ const getStockHistoryStats = (params) => {
     data: params
   });
 };
+const searchStockHistory = (keyword) => {
+  return request({
+    url: "/v1/stock/history/search",
+    method: "GET",
+    data: { keyword }
+  });
+};
 exports.BASE_URL = BASE_URL;
 exports.addUserStock = addUserStock;
 exports.checkSubscription = checkSubscription;
@@ -287,6 +295,7 @@ exports.getUserOrders = getUserOrders;
 exports.getUserStocks = getUserStocks;
 exports.queryOrder = queryOrder;
 exports.repayOrder = repayOrder;
+exports.searchStockHistory = searchStockHistory;
 exports.searchStocks = searchStocks;
 exports.updateUserProfile = updateUserProfile;
 exports.uploadFile = uploadFile;

+ 274 - 5
src/pages/index/index.vue

@@ -105,6 +105,74 @@
               </view>
             </view>
 
+            <!-- 历史数据 -->
+            <view class="section" v-if="historyData && (historyData.strengthScore !== null || historyData.highTrend !== null)">
+              <!-- 历史数据标题 -->
+              <view class="history-header">
+                <text class="history-title">历史数据</text>
+                <text class="history-date-tag">{{historyData.recordDate}}</text>
+              </view>
+              
+              <!-- 强度评分胶囊 -->
+              <view class="strength-row" v-if="historyData.strengthScore !== null && historyData.strengthScore !== undefined">
+                <text class="strength-label">强度评分</text>
+                <view class="strength-capsule" :class="historyData.strengthScore >= 0 ? 'capsule-up' : 'capsule-down'">
+                  <text class="capsule-value">{{formatStrengthScore(historyData.strengthScore)}}</text>
+                </view>
+              </view>
+              
+              <!-- 历史数据详情 -->
+              <view class="history-detail-grid">
+                <view class="history-detail-item" v-if="historyData.closePrice">
+                  <text class="detail-label">收盘价</text>
+                  <text class="detail-value">{{historyData.closePrice}}</text>
+                </view>
+                <view class="history-detail-item" v-if="historyData.changePercent">
+                  <text class="detail-label">涨跌幅</text>
+                  <text class="detail-value" :class="getChangeClass(historyData.changePercent)">{{formatPercent(historyData.changePercent)}}</text>
+                </view>
+                <view class="history-detail-item" v-if="historyData.totalAmount">
+                  <text class="detail-label">成交额</text>
+                  <text class="detail-value">{{formatAmount(historyData.totalAmount)}}</text>
+                </view>
+                <view class="history-detail-item" v-if="historyData.circulationMarketValue">
+                  <text class="detail-label">流通市值</text>
+                  <text class="detail-value">{{formatAmount(historyData.circulationMarketValue)}}</text>
+                </view>
+                <view class="history-detail-item" v-if="historyData.mainRisePeriod">
+                  <text class="detail-label">主升周期</text>
+                  <text class="detail-value">{{historyData.mainRisePeriod}}</text>
+                </view>
+                <view class="history-detail-item" v-if="historyData.recentLimitUp">
+                  <text class="detail-label">近期涨停</text>
+                  <text class="detail-value">{{historyData.recentLimitUp}}</text>
+                </view>
+              </view>
+              
+              <!-- 隔日表现 -->
+              <view class="next-day-section" v-if="historyData.highTrend !== null && historyData.highTrend !== undefined">
+                <view class="next-day-title">隔日表现</view>
+                <view class="next-day-grid">
+                  <view class="next-day-item" v-if="historyData.dayHighestPrice">
+                    <text class="next-day-label">最高价</text>
+                    <text class="next-day-value">{{historyData.dayHighestPrice}}</text>
+                  </view>
+                  <view class="next-day-item" v-if="historyData.dayLowestPrice">
+                    <text class="next-day-label">最低价</text>
+                    <text class="next-day-value">{{historyData.dayLowestPrice}}</text>
+                  </view>
+                  <view class="next-day-item" v-if="historyData.dayClosePrice">
+                    <text class="next-day-label">收盘价</text>
+                    <text class="next-day-value">{{historyData.dayClosePrice}}</text>
+                  </view>
+                  <view class="next-day-item">
+                    <text class="next-day-label">最高涨幅</text>
+                    <text class="next-day-value" :class="getChangeClass(historyData.highTrend)">{{formatPercent(historyData.highTrend)}}</text>
+                  </view>
+                </view>
+              </view>
+            </view>
+
             <!-- 历史评分趋势 -->
             <view class="section" v-if="result.history && result.history.length > 0">
               <view class="section-title">历史评分趋势</view>
@@ -171,7 +239,7 @@
 
 <script setup>
 import { ref, onMounted } from 'vue'
-import { getSuggestions, searchStocks } from '../../utils/api.js'
+import { getSuggestions, searchStocks, searchStockHistory } from '../../utils/api.js'
 import { isLoggedIn as checkLoginStatus } from '../../utils/auth.js'
 
 // 引入 onShow 生命周期
@@ -182,6 +250,7 @@ const loading = ref(false)
 const hasSearched = ref(false)
 const errorMsg = ref('')
 const result = ref(null)
+const historyData = ref(null) // 历史数据(强度评分等)
 const suggestions = ref([])
 const showDropdown = ref(false)
 const isLoggedIn = ref(false)
@@ -306,15 +375,28 @@ const doSearch = async (queryCode) => {
   hasSearched.value = true
   errorMsg.value = ''
   result.value = null
+  historyData.value = null
   suggestions.value = []
   showDropdown.value = false
 
   try {
-    const res = await searchStocks(queryCode)
-    if (res.code === 200 && res.data) {
-      result.value = res.data
+    // 同时查询股票信息和历史数据
+    const [stockRes, historyRes] = await Promise.all([
+      searchStocks(queryCode),
+      searchStockHistory(queryCode)
+    ])
+    
+    // 处理股票基本信息
+    if (stockRes.code === 200 && stockRes.data) {
+      result.value = stockRes.data
     } else {
-      errorMsg.value = res.message || '未查询到相关股票数据'
+      errorMsg.value = stockRes.message || '未查询到相关股票数据'
+    }
+    
+    // 处理历史数据(强度评分等)
+    if (historyRes.code === 200 && historyRes.data && historyRes.data.found) {
+      historyData.value = historyRes.data
+      console.log('历史数据:', historyData.value)
     }
   } catch (err) {
     errorMsg.value = '网络请求失败,请检查网络连接'
@@ -339,6 +421,51 @@ const getPriceClass = (changePercent) => {
   if (changePercent.startsWith('-')) return 'price-down'
   return ''
 }
+
+/**
+ * 根据涨跌幅数值返回样式类
+ */
+const getChangeClass = (value) => {
+  if (value === null || value === undefined) return ''
+  const num = parseFloat(value)
+  if (num > 0) return 'price-up'
+  if (num < 0) return 'price-down'
+  return ''
+}
+
+/**
+ * 格式化百分比
+ */
+const formatPercent = (value) => {
+  if (value === null || value === undefined) return '--'
+  const num = parseFloat(value)
+  const prefix = num > 0 ? '+' : ''
+  return `${prefix}${num.toFixed(2)}%`
+}
+
+/**
+ * 格式化金额(亿/万)
+ */
+const formatAmount = (value) => {
+  if (!value) return '--'
+  const num = parseFloat(value)
+  if (num >= 100000000) {
+    return (num / 100000000).toFixed(2) + '亿'
+  } else if (num >= 10000) {
+    return (num / 10000).toFixed(2) + '万'
+  }
+  return num.toFixed(2)
+}
+
+/**
+ * 格式化强度评分(带正负号)
+ */
+const formatStrengthScore = (value) => {
+  if (value === null || value === undefined) return '--'
+  const num = parseFloat(value)
+  const prefix = num >= 0 ? '+' : ''
+  return `${prefix}${num.toFixed(2)}`
+}
 </script>
 
 <style>
@@ -734,4 +861,146 @@ const getPriceClass = (changePercent) => {
 .bottom-safe-area {
   height: 80rpx;
 }
+
+/* 历史数据强度评分样式 */
+.section-date {
+  font-size: 24rpx;
+  font-weight: 400;
+  color: #9da3b5;
+  margin-left: 12rpx;
+}
+
+/* 强度评分胶囊标签样式 */
+.history-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 20rpx;
+}
+
+.history-title {
+  font-size: 30rpx;
+  font-weight: 600;
+  color: #1f1f2e;
+}
+
+.history-date-tag {
+  font-size: 22rpx;
+  color: #666;
+  background: #f5f6fb;
+  padding: 6rpx 16rpx;
+  border-radius: 20rpx;
+}
+
+.strength-row {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  background: #fafbfc;
+  border-radius: 12rpx;
+  padding: 16rpx 20rpx;
+  margin-bottom: 16rpx;
+}
+
+.strength-label {
+  font-size: 26rpx;
+  color: #666;
+  font-weight: 500;
+}
+
+.strength-capsule {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  padding: 10rpx 24rpx;
+  border-radius: 999rpx;
+  white-space: nowrap;
+}
+
+.capsule-up {
+  background-color: #F54545;
+}
+
+.capsule-down {
+  background-color: #00C853;
+}
+
+.capsule-value {
+  font-family: 'DIN', 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;
+  font-size: 30rpx;
+  font-weight: 700;
+  color: #ffffff;
+  letter-spacing: -1rpx;
+  white-space: nowrap;
+}
+
+.history-detail-grid {
+  display: flex;
+  flex-wrap: wrap;
+  background: #f8f9fc;
+  border-radius: 16rpx;
+  padding: 16rpx;
+  margin-top: 16rpx;
+}
+
+.history-detail-item {
+  width: 50%;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 12rpx 16rpx;
+  box-sizing: border-box;
+}
+
+.detail-label {
+  font-size: 24rpx;
+  color: #9da3b5;
+}
+
+.detail-value {
+  font-size: 26rpx;
+  font-weight: 600;
+  color: #333;
+}
+
+.next-day-section {
+  margin-top: 20rpx;
+  padding-top: 16rpx;
+  border-top: 1rpx solid #f1f2f6;
+}
+
+.next-day-title {
+  font-size: 26rpx;
+  font-weight: 600;
+  color: #1f1f2e;
+  margin-bottom: 12rpx;
+}
+
+.next-day-grid {
+  display: flex;
+  flex-wrap: wrap;
+  background: #fef9f0;
+  border-radius: 12rpx;
+  padding: 12rpx;
+}
+
+.next-day-item {
+  width: 50%;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 8rpx 12rpx;
+  box-sizing: border-box;
+}
+
+.next-day-label {
+  font-size: 22rpx;
+  color: #9da3b5;
+}
+
+.next-day-value {
+  font-size: 24rpx;
+  font-weight: 600;
+  color: #333;
+}
 </style>

+ 2 - 1
src/utils/api.js

@@ -4,10 +4,11 @@
 
 // ============ 配置区域 ============
 
-const ENV = 'dev' // 'dev' | 'prod'
+const ENV = 'local' // 'dev' | 'prod'
 
 const CONFIG = {
   dev: 'http://localhost:8081',      // 开发环境
+  local:'http://10.167.44.71:8081',
   prod: 'http://192.168.1.2:8081'    // 生产环境
 }
 

+ 1 - 3
target/classes/META-INF/mps/autoMapper

@@ -1,3 +1 @@
-com.yingpai.stock.domain.vo.StockPoolVo
-com.yingpai.stock.domain.vo.StockInfoVo
-com.yingpai.stock.domain.vo.StockPoolHistoryVo
+com.yingpai.miniapp.domain.vo.MiniappUserVo

+ 3 - 25
target/classes/META-INF/mps/mappers

@@ -1,28 +1,6 @@
-com.yingpai.stock.domain.vo.StockPoolHistoryVoToStockPoolHistoryMapper
-com.yingpai.stock.domain.vo.StockInfoVoToStockInfoMapper
-com.yingpai.stock.domain.vo.StockPoolVoToStockPoolMapper__1
-com.yingpai.stock.domain.vo.StockPoolVoToStockPoolMapper__2
-com.yingpai.stock.domain.vo.StockPoolVoToStockPoolMapper__3
+com.yingpai.stock.domain.vo.StockPoolVoToStockPoolMapper
 com.yingpai.stock.domain.StockPoolToStockPoolVoMapper
-com.yingpai.stock.domain.vo.StockPoolHistoryVoToStockPoolHistoryMapper__4
-com.yingpai.stock.domain.vo.StockPoolHistoryVoToStockPoolHistoryMapper__1
-com.yingpai.stock.domain.vo.StockInfoVoToStockInfoMapper__1
-com.yingpai.stock.domain.vo.StockPoolHistoryVoToStockPoolHistoryMapper__2
-com.yingpai.stock.domain.vo.StockInfoVoToStockInfoMapper__2
-com.yingpai.stock.domain.vo.StockPoolHistoryVoToStockPoolHistoryMapper__3
-com.yingpai.stock.domain.vo.StockInfoVoToStockInfoMapper__3
-com.yingpai.stock.domain.vo.StockInfoVoToStockInfoMapper__4
 com.yingpai.stock.domain.StockInfoToStockInfoVoMapper
+com.yingpai.stock.domain.vo.StockPoolHistoryVoToStockPoolHistoryMapper
 com.yingpai.stock.domain.StockPoolHistoryToStockPoolHistoryVoMapper
-com.yingpai.stock.domain.vo.StockPoolVoToStockPoolMapper
-com.yingpai.stock.domain.StockPoolToStockPoolVoMapper__1
-com.yingpai.stock.domain.StockInfoToStockInfoVoMapper__3
-com.yingpai.stock.domain.StockPoolToStockPoolVoMapper__2
-com.yingpai.stock.domain.StockInfoToStockInfoVoMapper__4
-com.yingpai.stock.domain.StockPoolToStockPoolVoMapper__3
-com.yingpai.stock.domain.StockInfoToStockInfoVoMapper__1
-com.yingpai.stock.domain.StockInfoToStockInfoVoMapper__2
-com.yingpai.stock.domain.StockPoolHistoryToStockPoolHistoryVoMapper__4
-com.yingpai.stock.domain.StockPoolHistoryToStockPoolHistoryVoMapper__3
-com.yingpai.stock.domain.StockPoolHistoryToStockPoolHistoryVoMapper__2
-com.yingpai.stock.domain.StockPoolHistoryToStockPoolHistoryVoMapper__1
+com.yingpai.stock.domain.vo.StockInfoVoToStockInfoMapper

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels