package com.ishop.merchant.service;
|
|
import com.ishop.merchant.BalanceRecordConstants;
|
import com.ishop.model.po.EbUserBalanceRecord;
|
import com.walker.db.Sorts;
|
import com.walker.db.page.GenericPager;
|
import com.walker.infrastructure.utils.NumberFormatUtils;
|
import com.walker.jdbc.service.BaseServiceImpl;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class UserBalanceServiceImpl extends BaseServiceImpl {
|
|
private final Sorts.Sort timeSort = Sorts.DESC().setField("create_time");
|
|
/**
|
* 查询个人余额变动列表。
|
* @param recordType 记录类型:all-全部,expenditure-支出,income-收入,recharge-充值
|
* @param userId
|
* @return
|
* @date 2023-09-13
|
*/
|
public GenericPager queryPageBalanceList(String recordType, long userId){
|
EbUserBalanceRecord param = new EbUserBalanceRecord();
|
param.setUid(userId);
|
// if(StringUtils.isNotEmpty(recordType)){
|
// param.setLinkType(recordType);
|
// }
|
if(recordType.equals("expenditure")){
|
param.setType(BalanceRecordConstants.BALANCE_RECORD_TYPE_SUB);
|
} else if(recordType.equals("income")){
|
param.setType(BalanceRecordConstants.BALANCE_RECORD_TYPE_ADD);
|
} else if(recordType.equals("recharge")) {
|
param.setType(BalanceRecordConstants.BALANCE_RECORD_TYPE_ADD);
|
param.setLinkType(BalanceRecordConstants.BALANCE_RECORD_LINK_TYPE_RECHARGE);
|
}
|
return this.selectSplit(param, timeSort);
|
}
|
|
/**
|
* 统计用户账户,余额充值总金额
|
* @param userId
|
* @return
|
*/
|
public double queryTotalRechargeRecord(long userId){
|
Double total = this.queryForObject(SQL_TOTAL_RECHARGE, new Object[]{userId}, Double.class);
|
if(total == null){
|
return 0;
|
}
|
return NumberFormatUtils.scaleAccuracy2(total);
|
}
|
|
/**
|
* 统计用户账户,余额消费总金额
|
* @param userId
|
* @return
|
* @date 2023-09-09
|
*/
|
public double queryTotalMonetaryRecord(long userId){
|
Double total = this.queryForObject(SQL_TOTAL_MONETARY, new Object[]{userId}, Double.class);
|
if(total == null){
|
return 0;
|
}
|
return NumberFormatUtils.scaleAccuracy2(total);
|
}
|
|
private static final String SQL_PAGE_LIST = "";
|
private static final String SQL_TOTAL_MONETARY = "select sum(amount) total from eb_user_balance_record where uid=? and link_type='order' and type=2";
|
private static final String SQL_TOTAL_RECHARGE = "select sum(amount) total from eb_user_balance_record where uid=? and link_type='recharge' and type=1";
|
}
|