CoinMapper.java 4.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 top.lvzhiqiang.entity.CoinHistoryOrder;
  6. import top.lvzhiqiang.entity.CoinMonitorCurrency;
  7. import top.lvzhiqiang.entity.CoinPubilcParams;
  8. import top.lvzhiqiang.entity.CoinTrader;
  9. import java.util.List;
  10. import java.util.Map;
  11. /**
  12. * coin-Mapper
  13. *
  14. * @author lvzhiqiang
  15. * 2023/9/9 17:37
  16. */
  17. public interface CoinMapper {
  18. @Insert({"<script>" +
  19. "INSERT ignore INTO coin_order_history(symbol,size,orderId,clientOid,filledQty,fee,price,priceAvg,state,side" +
  20. ",timeInForce,totalProfits,posSide,marginCoin,leverage,marginMode,orderType,reduceOnly,enterPointSource,tradeSide" +
  21. ",holdMode,orderSource,cTime,uTime)" +
  22. " VALUES " +
  23. "<foreach collection='list' item='p' index=\"index\" separator=\",\">" +
  24. " ( #{p.symbol}, #{p.size}, #{p.orderId}, #{p.clientOid}, #{p.filledQty}, #{p.fee}, #{p.price}, #{p.priceAvg}, #{p.state}" +
  25. ", #{p.side}, #{p.timeInForce}, #{p.totalProfits}, #{p.posSide}, #{p.marginCoin}, #{p.leverage}, #{p.marginMode}, #{p.orderType}" +
  26. ", #{p.reduceOnly}, #{p.enterPointSource}, #{p.tradeSide}, #{p.holdMode}, #{p.orderSource}, #{p.cTime}, #{p.uTime})" +
  27. "</foreach>" +
  28. "</script>"})
  29. int insertHistoryOrderList(List<CoinHistoryOrder> historyOrderList);
  30. @Select({"<script>" +
  31. "select * from coin_order_history WHERE 1 = 1" +
  32. "<if test=\"keyword != null and keyword != ''\">" +
  33. " and symbol like concat('%',#{keyword},'%')" +
  34. "</if>" +
  35. "<if test=\"side != null and side != ''\">" +
  36. " and side = #{side}" +
  37. "</if>" +
  38. " order by ${sortField} ${sort}" +
  39. "</script>"})
  40. List<CoinHistoryOrder> findHistoryOrderList(Map<String, Object> params);
  41. @Select("select symbol,type,category,sort from coin_monitor_currency where delete_flag = 1 order by sort")
  42. List<CoinMonitorCurrency> findMonitorCurrencyList();
  43. @Select("select * from coin_public_params where 1=1")
  44. @MapKey("codeKey")
  45. List<CoinPubilcParams> findPublicParams();
  46. @Insert({"<script>" +
  47. "INSERT INTO coin_trader(traderUid,traderNickName,maxFollowCount,followCount,totalFollowers,profitOrderCount,lossOrderCount," +
  48. "totalTradeCount,dailyProfitRate,dailyProfit,copyTradeDays,roi,totalProfit,totalFollowersProfit,aum,maxCallbackRate,last3wWinRate," +
  49. "averageWinRate,traderHeadPic,canTrace,tradingPairsAvailable,profile,lastTradeTime,modify_time)" +
  50. " VALUES " +
  51. "<foreach collection='list' item='mt' index=\"index\" separator=\",\">" +
  52. " (#{mt.traderUid},#{mt.traderNickName},#{mt.maxFollowCount},#{mt.followCount},#{mt.totalFollowers},#{mt.profitOrderCount},#{mt.lossOrderCount}," +
  53. "#{mt.totalTradeCount},#{mt.dailyProfitRate},#{mt.dailyProfit},#{mt.copyTradeDays},#{mt.roi},#{mt.totalProfit},#{mt.totalFollowersProfit},#{mt.aum}," +
  54. "#{mt.maxCallbackRate},#{mt.last3wWinRate},#{mt.averageWinRate},#{mt.traderHeadPic},#{mt.canTrace},#{mt.tradingPairsAvailable},#{mt.profile},#{mt.lastTradeTime}, now())" +
  55. " </foreach>" +
  56. " ON DUPLICATE KEY UPDATE traderNickName=values(traderNickName),maxFollowCount=values(maxFollowCount),followCount=values(followCount),totalFollowers=values(totalFollowers)," +
  57. "profitOrderCount=values(profitOrderCount),lossOrderCount=values(lossOrderCount),totalTradeCount=values(totalTradeCount),dailyProfitRate=values(dailyProfitRate)," +
  58. "dailyProfit=values(dailyProfit),copyTradeDays=values(copyTradeDays),roi=values(roi),totalProfit=values(totalProfit),totalFollowersProfit=values(totalFollowersProfit)," +
  59. "aum=values(aum),maxCallbackRate=values(maxCallbackRate),last3wWinRate=values(last3wWinRate),averageWinRate=values(averageWinRate),traderHeadPic=values(traderHeadPic)," +
  60. "canTrace=values(canTrace),tradingPairsAvailable=values(tradingPairsAvailable),profile=values(profile),lastTradeTime=values(lastTradeTime),modify_time=now()" +
  61. "</script>"})
  62. void insertMixTradeList(List<CoinTrader> parseMixTradeList);
  63. @Select({"<script>" +
  64. "select * from coin_trader WHERE 1 = 1" +
  65. "<if test=\"keyword != null and keyword != ''\">" +
  66. " and traderNickName like concat('%',#{keyword},'%')" +
  67. "</if>" +
  68. "<if test=\"canTrace != null and canTrace != ''\">" +
  69. " and canTrace = #{canTrace}" +
  70. "</if>" +
  71. " order by ${sortField} ${sort}" +
  72. "</script>"})
  73. List<CoinTrader> findMixTraderList(Map<String, Object> params);
  74. @Select("select concat(traderUid, '|', traderNickName) from coin_monitor_trader where delete_flag = '1'")
  75. List<String> findMonitorTraderList();
  76. }