package com.diagnose.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.diagnose.vo.FinanceCashShortVO; import com.diagnose.vo.FinanceIndexAnalysisVO; import com.diagnose.vo.FinanceRankVO; import com.diagnose.vo.FinancialValuationVO; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface FinanceMapper extends BaseMapper { @Select("SELECT * FROM (" + " SELECT fin_sum_mac, score, prf_abli_mac, grw_abli_mac, ass_quali_mac, solv_marg_mac, cash_flow_mac, ROW_NUMBER() OVER (PARTITION BY stk_code, mkt_num ORDER BY trd_date DESC) AS rn\n" + " FROM fin_val_fac\n" + " WHERE stk_code = #{stkCode} AND mkt_num = #{mktNum}\n" + ") t WHERE t.rn = 1") FinancialValuationVO selectFinancialValuation(@Param("stkCode") String stkCode, @Param("mktNum") Integer mktNum); @Select("SELECT * FROM (" + " SELECT *, ROW_NUMBER() OVER (PARTITION BY stk_code, sec_mar_par ORDER BY end_date DESC) AS rn\n" + " FROM fin_idx_ana\n" + " WHERE stk_code = #{stkCode} AND sec_mar_par = #{secMarPar}\n" + ") t WHERE t.rn <= 5") List selectFinanceIndexAnalysis(@Param("stkCode") String stkCode, @Param("secMarPar") Integer secMarPar); @Select("SELECT * FROM (" + " SELECT *, ROW_NUMBER() OVER (PARTITION BY stk_code, sec_mar_par ORDER BY end_date DESC) AS rn\n" + " FROM fin_cash_short\n" + " WHERE stk_code = #{stkCode} AND sec_mar_par = #{secMarPar}\n" + ") t WHERE t.rn <= 5") List selectFinanceCashShort(@Param("stkCode") String stkCode, @Param("secMarPar") Integer secMarPar); @Select("SELECT * FROM (" + " SELECT profit_indu_rank, growth_indu_rank, operate_indu_rank, debt_indu_rank, cash_indu_rank, ROW_NUMBER() OVER (PARTITION BY stk_uni_code ORDER BY end_date DESC) AS rn\n" + " FROM fe_stk_diag_fin_rank\n" + " WHERE stk_uni_code = #{stkUniCode}\n" + ") t WHERE t.rn = 1") FinanceRankVO selectFinanceRank(@Param("stkUniCode") Long stkUniCode); }