修改灵活产品的IRR和ROA的计算规则
This commit is contained in:
parent
813a127998
commit
99323a4f2c
@ -196,4 +196,4 @@
|
||||
<Parameter CODESCRIPT="caution_money_method" CODESOURCE="Code" COMPONENTTYPE="PRD0315" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="DepositStyle" PARAMETERNAME="保证金计算方式(汽车专用)" SELECTTYPE="05" STATUS="1"/>
|
||||
<Parameter COMPONENTTYPE="PRD0315" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="FINAL_PAYMENT_RATIO" PARAMETERNAME="尾款比例" STATUS="1"/>
|
||||
<Parameter COMPONENTTYPE="PRD0315" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="FIRST_PAYMENT_RATIO" PARAMETERNAME="首付款比例" STATUS="1"/>
|
||||
<Parameter COMPONENTTYPE="PRD0315" DATATYPE="2" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="DISCOUNT_ALL" PARAMETERNAME="总贴息金额" STATUS="1" UNIT="<font>元</font>"/><Parameter CODESCRIPT="period_type" CODESOURCE="Code" COMPONENTTYPE="PRD0350" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="begin_end" PARAMETERNAME="先付/后付" SELECTTYPE="05" STATUS="1"/><Parameter CODESCRIPT="oneOrMore" CODESOURCE="Code" COMPONENTTYPE="PRD0315" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="oneOrMore" PARAMETERNAME="分摊方式(汽车专用)" SELECTTYPE="04" STATUS="1"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="LeaseMoneyRatio" PARAMETERNAME="融资比例" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="splitting_ratio" PARAMETERNAME="分润利率" STATUS="2" UNIT="%"/><Parameter CODESCRIPT="TermType" CODESOURCE="Code" COMPONENTTYPE="PRD0350" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="TermType" PARAMETERNAME="期限类型" SELECTTYPE="04" STATUS="1"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="5" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="TermScope" PARAMETERNAME="期限范围" STATUS="1"/><Parameter CODESCRIPT="YesNo" CODESOURCE="Code" COMPONENTTYPE="PRD0350" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="isFixedRate" PARAMETERNAME="是否固定利率" SELECTTYPE="05" STATUS="1"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="RateTermScope" PARAMETERNAME="利率取值范围" STATUS="1" UNIT="<font>%</font>"/><Parameter CODESCRIPT="A,A级,B,B级,C,C级,D,D级,E,E级,F,F级" CODESOURCE="CodeTable" COMPONENTTYPE="PRD0390" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="ChannelRating" PARAMETERNAME="渠道评级" SELECTTYPE="06" STATUS="1"/><Parameter CODESCRIPT="A,A级,B,B级,C,C级,D,D级,E,E级,F,F级" CODESOURCE="CodeTable" COMPONENTTYPE="PRD0390" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="CustomerRating" PARAMETERNAME="客户评级" SELECTTYPE="06" STATUS="1"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="CostInterestRate" PARAMETERNAME="成本利率" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="OperatingRate" PARAMETERNAME="运营费率" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="2" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="GPSDifference" PARAMETERNAME="GPS差额" STATUS="1"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="RiskAccrualRatio" PARAMETERNAME="风险计提比率" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="StrategicCoefficient" PARAMETERNAME="战略系数" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="StrategyROA" PARAMETERNAME="战略ROA" STATUS="1" UNIT="%"/></Parameters>
|
||||
<Parameter COMPONENTTYPE="PRD0315" DATATYPE="2" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="DISCOUNT_ALL" PARAMETERNAME="总贴息金额" STATUS="1" UNIT="<font>元</font>"/><Parameter CODESCRIPT="period_type" CODESOURCE="Code" COMPONENTTYPE="PRD0350" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="begin_end" PARAMETERNAME="先付/后付" SELECTTYPE="05" STATUS="1"/><Parameter CODESCRIPT="oneOrMore" CODESOURCE="Code" COMPONENTTYPE="PRD0315" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="oneOrMore" PARAMETERNAME="分摊方式(汽车专用)" SELECTTYPE="04" STATUS="1"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="LeaseMoneyRatio" PARAMETERNAME="融资比例" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="splitting_ratio" PARAMETERNAME="分润利率" STATUS="2" UNIT="%"/><Parameter CODESCRIPT="TermType" CODESOURCE="Code" COMPONENTTYPE="PRD0350" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="TermType" PARAMETERNAME="期限类型" SELECTTYPE="04" STATUS="1"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="5" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="TermScope" PARAMETERNAME="期限范围" STATUS="1"/><Parameter CODESCRIPT="YesNo" CODESOURCE="Code" COMPONENTTYPE="PRD0350" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="isFixedRate" PARAMETERNAME="是否固定利率" SELECTTYPE="05" STATUS="1"/><Parameter COMPONENTTYPE="PRD0350" DATATYPE="6" METHODTYPE="Nothing" OPERATOR="MINIMUMVALUE,MAXIMUMVALUE" PARAMETERID="RateTermScope" PARAMETERNAME="利率取值范围" STATUS="1" UNIT="<font>%</font>"/><Parameter CODESCRIPT="A,A级,B,B级,C,C级,D,D级,E,E级,F,F级" CODESOURCE="CodeTable" COMPONENTTYPE="PRD0390" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="ChannelRating" PARAMETERNAME="渠道评级" SELECTTYPE="06" STATUS="1"/><Parameter CODESCRIPT="A,A级,B,B级,C,C级,D,D级,E,E级,F,F级" CODESOURCE="CodeTable" COMPONENTTYPE="PRD0390" DATATYPE="4" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="CustomerRating" PARAMETERNAME="客户评级" SELECTTYPE="06" STATUS="1"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="CostInterestRate" PARAMETERNAME="成本利率" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="OperatingRate" PARAMETERNAME="运营费率" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="2" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="GPSDifference" PARAMETERNAME="GPS差额" STATUS="1"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="RiskAccrualRatio" PARAMETERNAME="风险计提比率" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="StrategicCoefficient" PARAMETERNAME="战略系数" STATUS="1" UNIT="%"/><Parameter COMPONENTTYPE="PRD0390" DATATYPE="7" METHODTYPE="Nothing" OPERATOR="VALUE" PARAMETERID="StrategyROA" PARAMETERNAME="战略ROA" STATUS="1" UNIT="%"/></Parameters>
|
||||
@ -95,6 +95,8 @@ public class CashFlowExecutor {
|
||||
}
|
||||
|
||||
private void add(ConditionBean cb,TabCalBean tcb) throws Exception{
|
||||
|
||||
Map<String, Map<String, String>> productRevenues = tcb.getProductRevenues();
|
||||
String sql = "";
|
||||
if("MYSQL".equals(InitDBType.DBTYPE)){
|
||||
sql += "INSERT INTO " +Tools.getTable(tcb.getContractCashTb())+ " (id," + tcb.getPlanCName() + "";
|
||||
@ -124,8 +126,14 @@ public class CashFlowExecutor {
|
||||
}
|
||||
sql +=" if(fundplan.pay_type='pay_type_in',fundplan.plan_money,-fundplan.plan_money) cleanfow " ;
|
||||
sql +=" from "+Tools.getTable(tcb.getFundFundPlan_tb())+" fundplan " ;
|
||||
sql +=" left join code_library tdd on fundplan.fee_type = tdd.itemno " ;
|
||||
sql +=" where fundplan.flowunid = '"+ tcb.getDocId()+"' and fundplan."+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"'";
|
||||
sql +=" left join code_library tdd on fundplan.fee_type = tdd.itemno and tdd.codeno='FeeType' " ;
|
||||
sql +=" where fundplan.flowunid = '"+ tcb.getDocId()+"' and fundplan."+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' and fundplan.fee_type in ('feetype2','feetype1','feetype10','feetype16','feetype17') ";
|
||||
//如果是灵活产品减去产品中配置的GPS差额
|
||||
if("Y".equals( cb.getFlexible() ) ){
|
||||
Map<String, Map<String, String>> productRevenue = tcb.getProductRevenues();
|
||||
String GPSDifference = productRevenues.get( "GPSDifference" ).get( "GPSDifference" );
|
||||
sql += "union all select DATE_FORMAT(CURDATE(),'%Y/%m/%d') plan_date,'"+GPSDifference+"' flowin,'GPS差额:"+GPSDifference+"' flowindetail,'' flowout,'' flowoutdetil,'"+GPSDifference+"' cleanfow from dual ";
|
||||
}
|
||||
}else if("ORACLE".equals(InitDBType.DBTYPE)){
|
||||
sql += "INSERT INTO " +Tools.getTable(tcb.getContractCashTb())+ " (id," + tcb.getPlanCName() + "";
|
||||
sql += ",plan_date";
|
||||
@ -176,8 +184,38 @@ public class CashFlowExecutor {
|
||||
sql +=" )t group by t.plan_date ";
|
||||
Transaction Sqlca =null;
|
||||
Sqlca = Transaction.createTransaction(tx);
|
||||
SqlObject asql = new SqlObject(sql);
|
||||
SqlObject asql = new SqlObject("");
|
||||
asql.setOriginalSql(sql);
|
||||
Sqlca.executeSQL(asql);
|
||||
//由于安鹏目前没有从最后一期一直往前抵扣,这里临时处理下灵活产品的
|
||||
if( "Y".equals( cb.getFlexible() ) ){
|
||||
String lcftSql = "select ID,PLAN_DATE,FUND_IN,FUND_OUT from lc_cash_flow_temp where flowunid ='"+tcb.getDocId()+"' and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' order by plan_date desc";
|
||||
List<Map<String, String>> lcftDate =DataOperatorUtil.getDataBySql(tx, lcftSql, null);
|
||||
BigDecimal outMoney = null ;
|
||||
BigDecimal inMoney = null ;
|
||||
String updateSql = "" ;
|
||||
for (int i=0 ; i < lcftDate.size() ; i++ ) {
|
||||
if(i==0){
|
||||
outMoney = new BigDecimal(lcftDate.get(i).get("FUND_OUT") );
|
||||
inMoney = new BigDecimal(lcftDate.get(i).get("FUND_IN") );
|
||||
}else{
|
||||
inMoney = new BigDecimal(lcftDate.get(i).get("FUND_IN") );
|
||||
}
|
||||
if(outMoney.compareTo(inMoney)>=0){
|
||||
updateSql = " update lc_cash_flow_temp set FUND_OUT='"+inMoney+"',FUND_OUT_DETAILS='抵扣保证金:"+inMoney+"',NET_FLOW='0.00' where id='"+lcftDate.get(i).get("ID")+"' ";
|
||||
asql.setOriginalSql(updateSql);
|
||||
Sqlca.executeSQL(asql);
|
||||
outMoney = outMoney.subtract(inMoney);
|
||||
}else{
|
||||
updateSql = " update lc_cash_flow_temp set FUND_OUT='"+inMoney.subtract(outMoney)+"',FUND_OUT_DETAILS='抵扣保证金:"+inMoney.subtract(outMoney)+"',NET_FLOW='"+inMoney.subtract(outMoney)+"' where id='"+lcftDate.get(i).get("ID")+"' ";
|
||||
asql.setOriginalSql(updateSql);
|
||||
Sqlca.executeSQL(asql);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -66,7 +66,6 @@ public class ConditionHelper {
|
||||
if(cb.getSettleMethod().equals("irregular_rent")){
|
||||
params.put("INCOME_NUMBER",cb.getIncomeNumber()+"");
|
||||
}
|
||||
|
||||
if((cb.getSettleMethod().equals("even_corpus")&&cb.getRentOrRate().equals("corpus_period"))||cb.getSettleMethod().equals("irregular_rent")||cb.getSettleMethod().equals("even_subsection")||(cb.getSettleMethod().equals("even_rent_day")&&(cb.getRentOrRate().equals("rent_period")||cb.getRentOrRate().equals("rent_period_360")))){
|
||||
params.put("FIRST_PLAN_DATE", cb.getFirstPlanDate());
|
||||
params.put("SECOND_PLAN_DATE", cb.getSecondPlanDate());
|
||||
@ -108,14 +107,15 @@ public class ConditionHelper {
|
||||
BigDecimal handRate =null; //手续费税率
|
||||
BigDecimal gpsInstallFee =null;//GPS税率
|
||||
BigDecimal rentRate =null;// 租金税率
|
||||
BigDecimal percentage = new BigDecimal("100");
|
||||
if( pslData!=null && pslData.size()>0){
|
||||
String leasform = pslData.get(0).get("leasform");
|
||||
List<Map<String, String>> rateData = DataOperatorUtil.getDataBySql("select t.INTEREST_RATE,t.HAND_RATE,t.gps_install_fee,t.rent from (select INTEREST_RATE,HAND_RATE,gps_install_fee,rent,CONTRACT_DATE from TAX_INFO where CONTRACT_DATE<= DATE_FORMAT(NOW(),'%Y/%m/%d') and BEFORE_AFTER='after' and lease_form='"+leasform+"' union all select INTEREST_RATE,HAND_RATE,gps_install_fee,rent,CONTRACT_DATE from TAX_INFO where CONTRACT_DATE>=DATE_FORMAT(NOW(),'%Y/%m/%d') and BEFORE_AFTER='before' and lease_form='"+leasform+"' ) t order by t.CONTRACT_DATE desc limit 1");
|
||||
if( rateData!=null && rateData.size()>0 ){
|
||||
interestRate =new BigDecimal ( rateData.get(0).get("INTEREST_RATE") ).divide(new BigDecimal("100")) ;
|
||||
handRate =new BigDecimal (rateData.get(0).get("HAND_RATE") ).divide(new BigDecimal("100")) ;;
|
||||
gpsInstallFee =new BigDecimal (rateData.get(0).get("gps_install_fee") ).divide(new BigDecimal("100")) ;
|
||||
rentRate =new BigDecimal ( rateData.get(0).get("rent") ).divide(new BigDecimal("100")) ;
|
||||
interestRate = BigDecimal.ONE.add( new BigDecimal ( rateData.get(0).get("INTEREST_RATE") ).divide(percentage) );
|
||||
handRate = BigDecimal.ONE.add( new BigDecimal (rateData.get(0).get("HAND_RATE") ).divide(percentage) );
|
||||
gpsInstallFee = BigDecimal.ONE.add( new BigDecimal (rateData.get(0).get("gps_install_fee") ).divide( percentage ) );
|
||||
rentRate = BigDecimal.ONE.add( new BigDecimal ( rateData.get(0).get("rent") ).divide( percentage ) );
|
||||
}else{
|
||||
throw new BusinessException( "未配置对应税率!" );
|
||||
}
|
||||
@ -131,25 +131,46 @@ public class ConditionHelper {
|
||||
// 手续费
|
||||
BigDecimal handlingChargeMoney = new BigDecimal( cb.getHandlingChargeMoney() );
|
||||
// GPS差额
|
||||
BigDecimal gpsDifference = new BigDecimal( cb.getGPSDifference() );
|
||||
// BigDecimal gpsDifference = new BigDecimal( cb.getGPSDifference() );
|
||||
BigDecimal gpsDifference = new BigDecimal( productRevenues.get( "GPSDifference" ).get( "GPSDifference" ) );//取产品收益中的GPS差额配置
|
||||
// 收入
|
||||
BigDecimal in = allInterest.divide( interestRate , 2, 4 ).add( handlingChargeMoney.divide( handRate, 2, 4 ) ).add( gpsDifference.divide( gpsInstallFee, 2, 4 ) );
|
||||
// 租赁年限
|
||||
int leaseTerm = cb.getLeaseTerm();
|
||||
int leaseTerm = cb.getLeaseTerm()/12;
|
||||
// 融资额
|
||||
BigDecimal cleanLeaseMoney = new BigDecimal( cb.getCleanLeaseMoney() );
|
||||
|
||||
String rentSql = "select corpus,ALL_REMAIN_CORPUS from LC_RENT_PLAN_TEMP where flowunid ='"+cb.getDocId()+"' order by plan_date";
|
||||
List<Map<String, String>> rentPlanData =DataOperatorUtil.getDataBySql(tx, rentSql, null);
|
||||
BigDecimal cautionMoney = new BigDecimal( cb.getCautionMoney() );
|
||||
BigDecimal costMoney = BigDecimal.ZERO;
|
||||
BigDecimal CostInterestRate = new BigDecimal (productRevenues.get( "CostInterestRate" ).get( "CostInterestRate" ) ).divide( percentage ) ;//产品中的成本利率
|
||||
for (Map<String, String> map : rentPlanData) {
|
||||
BigDecimal surplus = new BigDecimal(map.get("corpus") ).add(new BigDecimal(map.get("ALL_REMAIN_CORPUS")));
|
||||
if(surplus.compareTo(cautionMoney)>0){
|
||||
costMoney = costMoney.add( surplus.subtract(cautionMoney).multiply( CostInterestRate).divide( new BigDecimal("12"), 2 , 4 ) );
|
||||
}
|
||||
}
|
||||
System.out.println(costMoney);
|
||||
// 成本
|
||||
BigDecimal cost = cleanLeaseMoney.add( new BigDecimal( cb.getCautionMoney() ).multiply( new BigDecimal( leaseTerm ) ) ).divide( rentRate, 2, 4 );
|
||||
BigDecimal cost = costMoney.add( new BigDecimal( cb.getCautionMoney() ).multiply( new BigDecimal( leaseTerm ) ).multiply(CostInterestRate) ).divide( rentRate, 2, 4 );
|
||||
// 运营费率
|
||||
String operatingRate = productRevenues.get( "OperatingRate" ).get( "OperatingRate" );
|
||||
// 运营费用
|
||||
BigDecimal operatingExpenses = cleanLeaseMoney.multiply( new BigDecimal( operatingRate ) );
|
||||
BigDecimal operatingExpenses = cleanLeaseMoney.multiply( new BigDecimal( operatingRate ).divide( percentage ) );
|
||||
// 风险计提比率
|
||||
String riskAccrualRatio = productRevenues.get( "RiskAccrualRatio" ).get( "RiskAccrualRatio" );
|
||||
// 风险计提
|
||||
BigDecimal withdrawalRisk = cleanLeaseMoney.multiply( new BigDecimal( riskAccrualRatio ) );
|
||||
BigDecimal withdrawalRisk = cleanLeaseMoney.multiply( new BigDecimal( riskAccrualRatio ).divide( percentage ) );
|
||||
// ROA
|
||||
BigDecimal roa = in.subtract( cost ).subtract( operatingExpenses ).subtract( withdrawalRisk ).multiply( new BigDecimal( 0.75 ) ).divide( cleanLeaseMoney, 2, 4 ).multiply( new BigDecimal( 2 ) );
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(cb.getDocId()).append("的ROA计算参数=利息和:").append(allInterest).append(",利息税率:").append(interestRate).append(",手续费:").append(handlingChargeMoney)
|
||||
.append(",手续费税率:").append(handRate).append(",GPS差额:").append(gpsDifference).append(",GPS差额税率:").append(gpsInstallFee)
|
||||
.append(",租金表里成本和:").append(costMoney).append(",保证金金额:").append(cb.getCautionMoney()).append(",租赁年限:").append(leaseTerm)
|
||||
.append(",成本利率:").append(CostInterestRate).append(",租金税率:").append(rentRate).append(",融资金额:").append(cleanLeaseMoney)
|
||||
.append(",运营费率:").append(new BigDecimal( operatingRate ).divide( percentage ) ).append(",风险计提比率:").append( new BigDecimal( riskAccrualRatio ).divide( percentage ) );
|
||||
System.out.println(sb.toString());
|
||||
if ( roa.compareTo( new BigDecimal( roaValue ).divide( new BigDecimal("100") ) ) < 0 ) {
|
||||
throw new BusinessException( "ROA小于产品配置!" );
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user