## 三单循环列表改为倒序查询;

This commit is contained in:
cabbage 2025-04-25 10:14:12 +08:00
parent 1b059fc96b
commit 3b61b2af85
6 changed files with 127 additions and 184 deletions

View File

@ -9,9 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-直推收益明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-10
@ -20,12 +18,15 @@ public interface CuMemberBonusPushMapper extends BaseMapper<CuMemberBonusPush> {
/**
* 查询三单循环列表
*
* @param tripleCycleListParam
* @return
*/
List<CuMemberBonusPushExt> tripleCycleList(TripleCycleListParam tripleCycleListParam);
/**
* 获取下一轮次
*
* @param pkMember
* @return
*/

View File

@ -1,19 +1,14 @@
package com.hzs.member.bonus.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.bonus.CuMemberBonus;
import com.hzs.common.domain.member.bonus.CuMemberBonusPush;
import com.hzs.common.domain.member.ext.CuMemberBonusPushExt;
import com.hzs.member.marketnews.param.TripleCycleListParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-直推收益明细表 服务类
* </p>
*
* @author hzs
* @since 2022-11-10
@ -22,6 +17,7 @@ public interface ICuMemberBonusPushService extends IService<CuMemberBonusPush> {
/**
* 查询三单循环列表
*
* @param tripleCycleListParam
* @return
*/
@ -29,8 +25,10 @@ public interface ICuMemberBonusPushService extends IService<CuMemberBonusPush> {
/**
* 获取下一轮次
*
* @param pkMember
* @return
*/
CuMemberBonusPush nextRound(Long pkMember);
}

View File

@ -11,9 +11,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 会员奖金-直推历史轮次记录 服务实现类
* </p>
*
* @author hzs
* @since 2023-09-10
@ -29,4 +27,5 @@ public class CuMemberBonusPushHisServiceImpl extends ServiceImpl<CuMemberBonusPu
queryWrapper.orderByDesc("round,second");
return baseMapper.selectList(queryWrapper);
}
}

View File

@ -3,21 +3,15 @@ package com.hzs.member.bonus.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.member.bonus.CuMemberBonusPush;
import com.hzs.common.domain.member.ext.CuMemberBonusPushExt;
import com.hzs.member.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.member.bonus.mapper.CuMemberBonusPushMapper;
import com.hzs.member.bonus.service.ICuMemberBonusPushService;
import com.hzs.member.marketnews.param.TripleCycleListParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-直推收益明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-10
@ -25,22 +19,14 @@ import java.util.Set;
@Service
public class CuMemberBonusPushServiceImpl extends ServiceImpl<CuMemberBonusPushMapper, CuMemberBonusPush> implements ICuMemberBonusPushService {
/**
* 查询三单循环列表
* @param tripleCycleListParam
* @return
*/
@Override
public List<CuMemberBonusPushExt> tripleCycleList(TripleCycleListParam tripleCycleListParam) {
return baseMapper.tripleCycleList(tripleCycleListParam);
}
/**
* 获取下一轮次
* @param pkMember
* @return
*/
@Override
public CuMemberBonusPush nextRound(Long pkMember) {
return baseMapper.nextRound(pkMember);
}
}

View File

@ -13,7 +13,6 @@ import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.bonus.CuMemberBonusPush;
import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
import com.hzs.common.domain.member.ext.CuMemberBonusPushExt;
@ -42,15 +41,9 @@ import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Description: 市场动态部分接口
* @Author: yuhui
* @Time: 2023/1/13 16:38
* @Classname: MarketNewsController
* @PackageName: com.hzs.member.marketNews.controller.api
*/
@RestController
@RequestMapping("/api/market-news")
@ -59,19 +52,18 @@ public class MarketNewsController extends BaseController {
@Autowired
private ITransactionCommonService iTransactionCommonService;
@Autowired
private ICuMemberShareService memberShareService;
private ICuMemberShareService iCuMemberShareService;
@Autowired
private ICuMemberService memberService;
private ICuMemberService iCuMemberService;
@Autowired
private ICuMemberBonusPushService memberBonusPushService;
private ICuMemberBonusPushService iCuMemberBonusPushService;
@Autowired
private ICuMemberBonusPushHisService cuMemberBonusPushHisService;
private ICuMemberBonusPushHisService iCuMemberBonusPushHisService;
@DubboReference
IGradeServiceApi gradeServiceApi;
IGradeServiceApi iGradeServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
ICurrencyServiceApi iCurrencyServiceApi;
/**
* 招商列表
@ -81,12 +73,12 @@ public class MarketNewsController extends BaseController {
@GetMapping("/bidding-list")
public TableDataInfo biddingList(MarketNewsParam marketNewsParam) {
Integer pkCountry = SecurityUtils.getPkCountry();
R<List<GradeDTO>> gradeDate = gradeServiceApi.queryGradeList(pkCountry);
R<List<GradeDTO>> gradeDate = iGradeServiceApi.queryGradeList(pkCountry);
List<GradeDTO> gradeList = gradeDate.getData();
marketNewsParam.setPkCountry(pkCountry);
startPage();
List<UserInvestmentVo> list = memberService.selectBiddingList(marketNewsParam);
List<UserInvestmentVo> list = iCuMemberService.selectBiddingList(marketNewsParam);
for (UserInvestmentVo userInvestmentVo : list) {
if (userInvestmentVo.getOrderType() != null) {
String label = EOrderType.getEnumByValue(userInvestmentVo.getOrderType()).getLabel();
@ -122,15 +114,15 @@ public class MarketNewsController extends BaseController {
Integer pkCountry = SecurityUtils.getPkCountry();
marketNewsParam.setPkCountry(pkCountry);
marketNewsParam.setPkCreator(SecurityUtils.getUserId());
R<List<GradeDTO>> gradeDate = gradeServiceApi.queryGradeList(pkCountry);
R<List<GradeDTO>> gradeDate = iGradeServiceApi.queryGradeList(pkCountry);
List<GradeDTO> gradeList = gradeDate.getData();
R<CurrencyDTO> currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currencyDto = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
CurrencyDTO currency = currencyDto.getData();
if (marketNewsParam.getEndCreationTime() != null) {
marketNewsParam.setEndCreationTime(DateUtils.getEndTime(marketNewsParam.getEndCreationTime()));
}
startPage();
List<UserInvestmentVo> list = memberService.selectRegList(marketNewsParam);
List<UserInvestmentVo> list = iCuMemberService.selectRegList(marketNewsParam);
for (UserInvestmentVo userInvestmentVo : list) {
if (userInvestmentVo.getPkPlaceParent() != null && userInvestmentVo.getPkParent() != null) {
if (userInvestmentVo.getPkPlaceParent() == 0 || userInvestmentVo.getPkParent() == 0) {
@ -180,7 +172,7 @@ public class MarketNewsController extends BaseController {
seaFlourParam.setEndCreationTime(DateUtil.endOfDay(seaFlourParam.getEndCreationTime()));
}
startPage();
List<SeaFlourVo> memberList = memberShareService.seaFlourList(seaFlourParam);
List<SeaFlourVo> memberList = iCuMemberShareService.seaFlourList(seaFlourParam);
if (CollectionUtil.isNotEmpty(memberList)) {
for (SeaFlourVo seaFlourVo : memberList) {
seaFlourVo.setMemberCode(CommonUtil.getMemberCode(seaFlourVo.getMemberCode(), seaFlourVo.getServiceCode()));
@ -195,9 +187,9 @@ public class MarketNewsController extends BaseController {
*/
@GetMapping("/round-his")
public TableDataInfo seaFlourList() {
List<CuMemberBonusPushHis> cuMemberBonusPushHis = cuMemberBonusPushHisService.queryCuMemberBonusPushHis(SecurityUtils.getUserId());
List<CuMemberBonusPushHis> cuMemberBonusPushHis = iCuMemberBonusPushHisService.queryCuMemberBonusPushHis(SecurityUtils.getUserId());
if (Objects.equals(CountryConstants.CHINA_COUNTRY, SecurityUtils.getPkCountry())) {
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry()).getData();
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry()).getData();
cuMemberBonusPushHis.forEach(bonusPushHis ->
bonusPushHis.setCalAchieve(ComputeUtil.computeMultiply(bonusPushHis.getCalAchieve(), currencyDTO.getInExchangeRate())));
}
@ -209,28 +201,30 @@ public class MarketNewsController extends BaseController {
*/
@GetMapping("/triple_cycle_list")
public TableDataInfo tripleCycleList(TripleCycleListParam tripleCycleListParam) {
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
// 汇率比例
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
R<List<GradeDTO>> gradeDto = gradeServiceApi.findAll();
List<GradeDTO> gradeDate = gradeDto.getData();
tripleCycleListParam.setPkMember(SecurityUtils.getUserId());
startPage();
if (tripleCycleListParam.getStartCreationTime() != null) {
tripleCycleListParam.setStartCreationTime(DateUtil.beginOfDay(tripleCycleListParam.getStartCreationTime()));
}
if (tripleCycleListParam.getEndCreationTime() != null) {
tripleCycleListParam.setEndCreationTime(DateUtil.endOfDay(tripleCycleListParam.getEndCreationTime()));
}
// 禅道bug 8461 会员端招商列表下的三单循环历史轮次需要显示已退单的会员数据 需要展示已删除的会员信息
startPage();
List<CuMemberBonusPushExt> list = iCuMemberBonusPushService.tripleCycleList(tripleCycleListParam);
if (CollectionUtil.isNotEmpty(list)) {
R<List<GradeDTO>> gradeDto = iGradeServiceApi.findAll();
List<GradeDTO> gradeDate = gradeDto.getData();
// 汇率比例
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EOrderType.values());
Map<Integer, String> transactionMap1 = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE);
//查询所有汇率
R<List<CurrencyDTO>> currencyDTOList = currencyServiceApi.findAll();
Map<Integer, CurrencyDTO> currencyMap = currencyDTOList.getData().stream().collect(Collectors.toMap(CurrencyDTO::getPkCountry, Function.identity()));
// 禅道bug 8461 会员端招商列表下的三单循环历史轮次需要显示已退单的会员数据 需要展示已删除的会员信息
List<CuMemberBonusPushExt> list = memberBonusPushService.tripleCycleList(tripleCycleListParam);
for (CuMemberBonusPushExt cuMemberBonusPush : list) {
for (CuMemberBonusPushExt cuMemberBonusPush : list) {
cuMemberBonusPush.setMemberCode(CommonUtil.getMemberCode(cuMemberBonusPush.getMemberCode(), cuMemberBonusPush.getServiceCode()));
cuMemberBonusPush.setMemberName(CommonUtil.getMemberName(cuMemberBonusPush.getPkVertex(), cuMemberBonusPush.getMemberName(), cuMemberBonusPush.getNickName()));
@ -255,17 +249,7 @@ public class MarketNewsController extends BaseController {
cuMemberBonusPush.setOrderAchieve(cuMemberBonusPush.getOrderAchieve());
}
cuMemberBonusPush.setCreationTime(cuMemberBonusPush.getMemberPayTime());
// 跨国报单 汇率转换
Long pkCreator = cuMemberBonusPush.getPkCreator();
CuMember member = memberService.getMember(pkCreator);
if (!member.getPkSettleCountry().equals(cuMemberBonusPush.getPkCountry())) {
// 会员结算国是中国 并且会员结算国和订单下单国家不一致
CurrencyDTO thisCurrency = currencyMap.get(member.getPkSettleCountry());
CurrencyDTO settleCurrency = currencyMap.get(cuMemberBonusPush.getPkCountry());
cuMemberBonusPush.setOrderAmount(cuMemberBonusPush.getOrderAmount().divide(settleCurrency.getInExchangeRate(), 2, BigDecimal.ROUND_HALF_UP).multiply(thisCurrency.getInExchangeRate()));
}
}
return getDataTable(list);
}
@ -276,7 +260,7 @@ public class MarketNewsController extends BaseController {
@GetMapping("/next-round")
public AjaxResult nextRound() {
Long pkMember = SecurityUtils.getUserId();
CuMemberBonusPush memberBonusPush = memberBonusPushService.nextRound(pkMember);
CuMemberBonusPush memberBonusPush = iCuMemberBonusPushService.nextRound(pkMember);
if (memberBonusPush == null || memberBonusPush.getRound() == null || memberBonusPush.getSecond() == null) {
memberBonusPush.setSecond(1);
memberBonusPush.setRound(1);

View File

@ -4,70 +4,70 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberBonusPush" type="com.hzs.common.domain.member.ext.CuMemberBonusPushExt">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_BONUS" property="pkBonus" />
<result column="PK_ORDER" property="pkOrder" />
<result column="PK_BONUS_ITEMS" property="pkBonusItems" />
<result column="INCOME_STATUS" property="incomeStatus" />
<result column="CAL_TYPE" property="calType" />
<result column="CAL_ACHIEVE" property="calAchieve" />
<result column="CAL_VALUE" property="calValue" />
<result column="PRETAX_INCOME" property="pretaxIncome" />
<result column="INCOME_TAX" property="incomeTax" />
<result column="REAL_INCOME" property="realIncome" />
<result column="ROUND" property="round" />
<result column="SECOND" property="second" />
<result column="REMARK" property="remark" />
<result column="INCOME_RATIO" property="incomeRatio" />
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio" />
<result column="ORDER_DIAL_RATIO" property="orderDialRatio" />
<result column="ORDER_CODE" property="orderCode" />
<result column="ORDER_TYPE" property="orderType" />
<result column="PK_SOURCE_COUNTRY" property="pkSourceCountry" />
<result column="SOURCE_COUNTRY_NAME" property="sourceCountryName" />
<result column="SOURCE_MEMBER_CODE" property="sourceMemberCode" />
<result column="SOURCE_MEMBER_NAME" property="sourceMemberName" />
<result column="PK_RATE" property="pkRate" />
<result column="ORDER_AMOUNT" property="orderAmount" />
<result column="ORDER_ACHIEVE" property="orderAchieve" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_BONUS" property="pkBonus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
<result column="INCOME_STATUS" property="incomeStatus"/>
<result column="CAL_TYPE" property="calType"/>
<result column="CAL_ACHIEVE" property="calAchieve"/>
<result column="CAL_VALUE" property="calValue"/>
<result column="PRETAX_INCOME" property="pretaxIncome"/>
<result column="INCOME_TAX" property="incomeTax"/>
<result column="REAL_INCOME" property="realIncome"/>
<result column="ROUND" property="round"/>
<result column="SECOND" property="second"/>
<result column="REMARK" property="remark"/>
<result column="INCOME_RATIO" property="incomeRatio"/>
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
<result column="ORDER_CODE" property="orderCode"/>
<result column="ORDER_TYPE" property="orderType"/>
<result column="PK_SOURCE_COUNTRY" property="pkSourceCountry"/>
<result column="SOURCE_COUNTRY_NAME" property="sourceCountryName"/>
<result column="SOURCE_MEMBER_CODE" property="sourceMemberCode"/>
<result column="SOURCE_MEMBER_NAME" property="sourceMemberName"/>
<result column="PK_RATE" property="pkRate"/>
<result column="ORDER_AMOUNT" property="orderAmount"/>
<result column="ORDER_ACHIEVE" property="orderAchieve"/>
<result column="MEMBER_CODE" property="memberCode"/>
<result column="MEMBER_NAME" property="memberName"/>
<result column="PK_SETTLE_GRADE" property="pkSettleGrade"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="VERTEX_NAME" property="vertexName" />
<result column="TEAM_NAME" property="teamName" />
<result column="TEAM_CODE" property="teamCode" />
<result column="SETTLE_DATE" property="settleDate" />
<result column="SETTLE_COUNTRY" property="settleCountry" />
<result column="PERIOD" property="period" />
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate" />
<result column="PK_REGISTER_GRADE" property="pkRegisterGrade" />
<result column="ORDER_TYPE" property="orderType" />
<result column="memberPayTime" property="memberPayTime" />
<result column="PK_VERTEX" property="pkVertex" />
<result column="SERVICE_CODE" property="serviceCode" />
<result column="NICK_NAME" property="nickName" />
<result column="VERTEX_NAME" property="vertexName"/>
<result column="TEAM_NAME" property="teamName"/>
<result column="TEAM_CODE" property="teamCode"/>
<result column="SETTLE_DATE" property="settleDate"/>
<result column="SETTLE_COUNTRY" property="settleCountry"/>
<result column="PERIOD" property="period"/>
<result column="OUT_EXCHANGE_RATE" property="outExchangeRate"/>
<result column="PK_REGISTER_GRADE" property="pkRegisterGrade"/>
<result column="ORDER_TYPE" property="orderType"/>
<result column="memberPayTime" property="memberPayTime"/>
<result column="PK_VERTEX" property="pkVertex"/>
<result column="SERVICE_CODE" property="serviceCode"/>
<result column="NICK_NAME" property="nickName"/>
</resultMap>
<select id="tripleCycleList" resultMap="CuMemberBonusPush" >
select ce.member_name ,ce.MEMBER_CODE,so.ORDER_AMOUNT ,so.ORDER_ACHIEVE, ce.PK_REGISTER_GRADE,so.ORDER_TYPE,cp.ROUND + 1 ROUND ,cp.SECOND SECOND,so.PAY_TIME memberPayTime,so.PK_CREATOR,so.PK_COUNTRY,
ce.pk_vertex,
ce.service_code,
ce.nick_name
<!-- 查询三单循环列表 -->
<select id="tripleCycleList" resultMap="CuMemberBonusPush">
select ce.member_name ,ce.member_code, so.ORDER_AMOUNT ,so.order_achieve,
ce.pk_register_grade, so.order_type, cp.ROUND + 1 ROUND, cp.SECOND SECOND,
so.PAY_TIME memberPayTime, so.PK_CREATOR, so.PK_COUNTRY, ce.pk_vertex,
ce.service_code, ce.nick_name
from cu_member_bonus_push cp
left join sa_order so on so.pk_id = cp.PK_ORDER
left join CU_MEMBER ce on ce.PK_ID = so.PK_MEMBER
left join cu_member ce on ce.PK_ID = so.PK_MEMBER
where
so.order_type in (1, 2,24,25)
and so.order_status = 1 and cp.pk_bonus_items=3 and cal_type=1
so.order_type in (1, 2, 24, 25)
and so.order_status = 1 and cp.pk_bonus_items = 3 and cal_type = 1
and so.pk_reference = #{pkMember}
<if test="memberInfo != null and memberInfo != ''">
and (ce.member_code=#{memberInfo} or ce.member_name=#{memberInfo})
</if>
@ -86,43 +86,18 @@
<if test="pkRegisterGrade != null">
and ce.PK_REGISTER_GRADE = #{pkRegisterGrade}
</if>
order by round,second
<!-- select ce.member_name ,ce.MEMBER_CODE,so.ORDER_AMOUNT ,so.ORDER_ACHIEVE, ce.PK_REGISTER_GRADE,so.ORDER_TYPE,(case cp.SECOND when 0 then 0 else cp.ROUND+1 end) ROUND,cp.SECOND,so.PAY_TIME memberPayTime,so.PK_CREATOR,so.PK_COUNTRY from-->
<!-- sa_order so-->
<!-- left join CU_MEMBER_BONUS_PUSH cp-->
<!-- on so.pk_id = cp.PK_ORDER-->
<!-- left join CU_MEMBER ce on ce.PK_ID = so.PK_MEMBER-->
<!-- where so.del_flag=0 and so.ORDER_TYPE in (1, 2, 24,25)-->
<!-- &lt;!&ndash; 去除历史开网迁移数据 &ndash;&gt;-->
<!-- and so.PK_CREATOR != 1-->
<!-- and (so.pk_member in (select cm.pk_id from CU_MEMBER cm where cm.pk_parent = #{pkMember} and cm.del_flag = 0 ))-->
<!-- <if test="memberInfo != null and memberInfo != ''">-->
<!-- and (ce.member_code=#{memberInfo} or ce.member_name=#{memberInfo})-->
<!-- </if>-->
<!-- <if test="memberCode != null and memberCode != ''">-->
<!-- and ce.MEMBER_CODE = #{memberCode}-->
<!-- </if>-->
<!-- <if test="memberName != null and memberName != ''">-->
<!-- and ce.MEMBER_NAME = #{memberName}-->
<!-- </if>-->
<!-- <if test="startCreationTime != null">-->
<!-- and so.PAY_TIME >=#{startCreationTime}-->
<!-- </if>-->
<!-- <if test="endCreationTime != null">-->
<!-- and so.PAY_TIME &lt;#{endCreationTime}-->
<!-- </if>-->
<!-- <if test="pkRegisterGrade != null">-->
<!-- and ce.PK_REGISTER_GRADE = #{pkRegisterGrade}-->
<!-- </if>-->
<!-- order by nvl(cp.ROUND, 0) desc, nvl(cp.SECOND, 0) desc-->
order by round desc, second desc
</select>
<select id="nextRound" resultMap="CuMemberBonusPush" >
select bb.ROUND,bb.SECOND from (
select bp.* from CU_MEMBER_BONUS_PUSH bp
<select id="nextRound" resultMap="CuMemberBonusPush">
select bb.ROUND, bb.SECOND
from (
select bp.*
from CU_MEMBER_BONUS_PUSH bp
left join CU_MEMBER_BONUS mb on mb.PK_ID = bp.PK_BONUS
where PK_MEMBER = #{pkMember} order by bp.ROUND desc,bp.SECOND desc) bb where rownum = 1
where PK_MEMBER = #{pkMember}
order by bp.ROUND desc, bp.SECOND desc) bb
where rownum = 1
</select>
</mapper>