CoinMapper.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package top.lvzhiqiang.mapper;
  2. import org.apache.ibatis.annotations.Insert;
  3. import org.apache.ibatis.annotations.MapKey;
  4. import org.apache.ibatis.annotations.Select;
  5. import org.apache.ibatis.annotations.Update;
  6. import top.lvzhiqiang.entity.*;
  7. import java.util.List;
  8. import java.util.Map;
  9. /**
  10. * coin-Mapper
  11. *
  12. * @author lvzhiqiang
  13. * 2023/9/9 17:37
  14. */
  15. public interface CoinMapper {
  16. @Insert({"<script>" +
  17. "INSERT ignore INTO coin_order_history(symbol,size,orderId,clientOid,filledQty,fee,price,priceAvg,state,side" +
  18. ",timeInForce,totalProfits,posSide,marginCoin,leverage,marginMode,orderType,reduceOnly,enterPointSource,tradeSide" +
  19. ",holdMode,orderSource,cTime,uTime)" +
  20. " VALUES " +
  21. "<foreach collection='list' item='p' index=\"index\" separator=\",\">" +
  22. " ( #{p.symbol}, #{p.size}, #{p.orderId}, #{p.clientOid}, #{p.filledQty}, #{p.fee}, #{p.price}, #{p.priceAvg}, #{p.state}" +
  23. ", #{p.side}, #{p.timeInForce}, #{p.totalProfits}, #{p.posSide}, #{p.marginCoin}, #{p.leverage}, #{p.marginMode}, #{p.orderType}" +
  24. ", #{p.reduceOnly}, #{p.enterPointSource}, #{p.tradeSide}, #{p.holdMode}, #{p.orderSource}, #{p.cTime}, #{p.uTime})" +
  25. "</foreach>" +
  26. "</script>"})
  27. int insertHistoryOrderList(List<CoinHistoryOrder> historyOrderList);
  28. @Select({"<script>" +
  29. "select * from coin_order_history WHERE 1 = 1" +
  30. "<if test=\"keyword != null and keyword != ''\">" +
  31. " and symbol like concat('%',#{keyword},'%')" +
  32. "</if>" +
  33. "<if test=\"side != null and side != ''\">" +
  34. " and side = #{side}" +
  35. "</if>" +
  36. " order by ${sortField} ${sort}" +
  37. "</script>"})
  38. List<CoinHistoryOrder> findHistoryOrderList(Map<String, Object> params);
  39. @Select("select symbol,type,category,sort from coin_monitor_currency where delete_flag = 1 order by sort")
  40. List<CoinMonitorCurrency> findMonitorCurrencyList();
  41. @Select("select * from coin_public_params where 1=1")
  42. @MapKey("codeKey")
  43. List<CoinPubilcParams> findPublicParams();
  44. @Insert({"<script>" +
  45. "INSERT INTO coin_trader(traderUid,traderNickName,maxFollowCount,followCount,totalFollowers,profitOrderCount,lossOrderCount," +
  46. "totalTradeCount,dailyProfitRate,dailyProfit,copyTradeDays,roi,totalProfit,totalFollowersProfit,aum,maxCallbackRate,last3wWinRate," +
  47. "averageWinRate,traderHeadPic,canTrace,tradingPairsAvailable,profile,lastTradeTime,modify_time)" +
  48. " VALUES " +
  49. "<foreach collection='list' item='mt' index=\"index\" separator=\",\">" +
  50. " (#{mt.traderUid},#{mt.traderNickName},#{mt.maxFollowCount},#{mt.followCount},#{mt.totalFollowers},#{mt.profitOrderCount},#{mt.lossOrderCount}," +
  51. "#{mt.totalTradeCount},#{mt.dailyProfitRate},#{mt.dailyProfit},#{mt.copyTradeDays},#{mt.roi},#{mt.totalProfit},#{mt.totalFollowersProfit},#{mt.aum}," +
  52. "#{mt.maxCallbackRate},#{mt.last3wWinRate},#{mt.averageWinRate},#{mt.traderHeadPic},#{mt.canTrace},#{mt.tradingPairsAvailable},#{mt.profile},#{mt.lastTradeTime}, now())" +
  53. " </foreach>" +
  54. " ON DUPLICATE KEY UPDATE traderNickName=values(traderNickName),maxFollowCount=values(maxFollowCount),followCount=values(followCount),totalFollowers=values(totalFollowers)," +
  55. "profitOrderCount=values(profitOrderCount),lossOrderCount=values(lossOrderCount),totalTradeCount=values(totalTradeCount),dailyProfitRate=values(dailyProfitRate)," +
  56. "dailyProfit=values(dailyProfit),copyTradeDays=values(copyTradeDays),roi=values(roi),totalProfit=values(totalProfit),totalFollowersProfit=values(totalFollowersProfit)," +
  57. "aum=values(aum),maxCallbackRate=values(maxCallbackRate),last3wWinRate=values(last3wWinRate),averageWinRate=values(averageWinRate),traderHeadPic=values(traderHeadPic)," +
  58. "canTrace=values(canTrace),tradingPairsAvailable=values(tradingPairsAvailable),profile=values(profile),lastTradeTime=values(lastTradeTime),modify_time=now()" +
  59. "</script>"})
  60. void insertMixTradeList(List<CoinTrader> parseMixTradeList);
  61. @Select({"<script>" +
  62. "select * from coin_trader WHERE 1 = 1" +
  63. "<if test=\"keyword != null and keyword != ''\">" +
  64. " and traderNickName like concat('%',#{keyword},'%')" +
  65. "</if>" +
  66. "<if test=\"canTrace != null and canTrace != ''\">" +
  67. " and canTrace = #{canTrace}" +
  68. "</if>" +
  69. " order by ${sortField} ${sort}" +
  70. "</script>"})
  71. List<CoinTrader> findMixTraderList(Map<String, Object> params);
  72. @Select("select concat(traderUid, '|', traderNickName) from coin_monitor_trader where delete_flag = '1'")
  73. List<String> findMonitorTraderList();
  74. @Select({"<script>" +
  75. "select * from coin_watchlist WHERE delete_flag = 1" +
  76. "<if test=\"keyword != null and keyword != ''\">" +
  77. " and symbol like concat('%',#{keyword},'%')" +
  78. "</if>" +
  79. "<if test=\"filterField != null and filterField != ''\">" +
  80. " and filter_flag = #{filterField}" +
  81. "</if>" +
  82. "<if test=\"trackCategoryField != null and trackCategoryField != ''\">" +
  83. " and track_category like concat('%',#{trackCategoryField},'%')" +
  84. "</if>" +
  85. " order by ${sortField} ${sort}" +
  86. "</script>"})
  87. List<CoinWatchlist> findWatchlistList(Map<String, Object> params);
  88. @Update("update coin_watchlist set cmc_id=#{cmcId},total_market_ranking=#{totalMarketRanking},total_market_value=#{totalMarketValue}," +
  89. "mark_price=#{markPrice},highest_historical_price=#{highestHistoricalPrice},lowest_historical_price=#{lowestHistoricalPrice}," +
  90. "highest_historical_date=#{highestHistoricalDate},lowest_historical_date=#{lowestHistoricalDate},increase_multiple=#{increaseMultiple}," +
  91. "issuing_days=#{issuingDays},modify_time=now() where id = #{id}")
  92. int updateCoinWatchlist(CoinWatchlist coinWatchlist);
  93. @Update("update coin_watchlist set remark=#{remark},modify_time=now() where symbol = #{symbol}")
  94. int updateCoinWatchlistRemark(CoinWatchlist coinWatchlist);
  95. @Select("select * from coin_watchlist where symbol = #{symbol}")
  96. CoinWatchlist findWatchlistBySymbol(String symbol);
  97. @Insert("INSERT INTO file_image(old_name, new_name, size, path, remark, create_time, modify_time) " +
  98. "VALUES (#{oldName}, #{newName}, #{size}, #{path}, #{remark}, now(), now())")
  99. int insertFileImage(FileImage fileImage);
  100. @Select({"<script>" +
  101. "select * from file_image WHERE delete_flag = 1" +
  102. "<if test=\"keyword != null and keyword != ''\">" +
  103. " and (old_name like concat('%',#{keyword},'%') or remark like concat('%',#{keyword},'%'))" +
  104. "</if>" +
  105. " order by ${sortField} ${sort}" +
  106. "</script>"})
  107. List<FileImage> findImageList(Map<String, Object> params);
  108. @Insert({"<script>" +
  109. "INSERT INTO coin_cmc_map(cmc_id,cmc_rank,name,symbol,slug,is_active,status," +
  110. "first_historical_data,last_historical_data,platform,modify_time)" +
  111. " VALUES " +
  112. "<foreach collection='list' item='mt' index=\"index\" separator=\",\">" +
  113. " (#{mt.cmcId},#{mt.cmcRank},#{mt.name},#{mt.symbol},#{mt.slug},#{mt.isActive},#{mt.status}," +
  114. "#{mt.firstHistoricalData},#{mt.lastHistoricalData},#{mt.platform},now())" +
  115. " </foreach>" +
  116. " ON DUPLICATE KEY UPDATE cmc_rank=values(cmc_rank),name=values(name),symbol=values(symbol),slug=values(slug)," +
  117. "is_active=values(is_active),status=values(status),first_historical_data=values(first_historical_data),last_historical_data=values(last_historical_data),modify_time=now()" +
  118. "</script>"})
  119. void insertCmcMapList(List<CoinCmcMap> cmcMapList);
  120. @Select({"<script>" +
  121. "select * from coin_cmc_map WHERE 1 = 1" +
  122. "<if test=\"keyword != null and keyword != ''\">" +
  123. " and (name like concat('%',#{keyword},'%') or symbol like concat('%',#{keyword},'%') or slug like concat('%',#{keyword},'%'))" +
  124. "</if>" +
  125. "<if test=\"filterField != null and filterField != ''\">" +
  126. " and status = #{filterField}" +
  127. "</if>" +
  128. " order by ${sortField} ${sort}" +
  129. "</script>"})
  130. List<CoinCmcMap> findCmcMapList(Map<String, Object> params);
  131. }