TdCAcctPayoutDaoImpl.java 3.39 KB
/**
 * 
 */
package com.zteits.pay.dao.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.owner.dto.OwnerPayOutDTO;
import com.zteits.clouds.api.dto.owner.param.OwnerRequest;
import com.zteits.clouds.api.dto.pay.AcctPayoutDTO;
import com.zteits.clouds.api.dto.pay.AcctRechargeStatisticDTO;
import com.zteits.clouds.api.dto.pay.param.AcctPayoutForPageRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.zteits.pay.dao.TdCAcctPayoutDao;
import com.zteits.pay.domain.TdCAcctPayout;
import com.zteits.pay.domain.TdCAcctPayoutExample;
import com.zteits.pay.mapper.TdCAcctPayoutMapper;
import com.zteits.pay.mapper.smapper.TdCAcctPayoutSMapper;

/**
 * @author hxz
 *
 */
@Component
public class TdCAcctPayoutDaoImpl implements TdCAcctPayoutDao {

	@Autowired
	private TdCAcctPayoutSMapper tdCAcctPayoutSMapper;
	@Autowired
	private TdCAcctPayoutMapper tdCAcctPayoutMapper;
	
	
	@Override
	public List<TdCAcctPayout> getAcctPayoutList(AcctPayoutForPageRequest request) {
		List<TdCAcctPayout> list = tdCAcctPayoutSMapper.getAcctPayout(request);
		return new ArrayList<>(list);
	}

	@Override
	public List<TdCAcctPayout> queryAcctPayOutByOrderId(String custId,String orderId, Integer tradeDetialType) {
		TdCAcctPayoutExample example = new TdCAcctPayoutExample();
		example.createCriteria().andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value())
				.andRltOrderIdEqualTo(orderId)
				.andTradeDetialTypeEqualTo(tradeDetialType)
				.andCustIdEqualTo(custId);
		return  tdCAcctPayoutMapper.selectByExample(example);
	}


	@Override
	public Long insertPayout(TdCAcctPayout tdCAcctPayout) {
		tdCAcctPayoutMapper.insertSelective(tdCAcctPayout);
		return tdCAcctPayout.getId();
	}


	/**
	 * 通过支付单id查询个人账户支出表.<br/>
	 * @param
	 * @return
	 * 2018年4月12日  wangfs.<br/>
	 */
	@Override
	public List<TdCAcctPayout> queryAcctPayoutByPayOrderId(String payOrderId) {
 
		TdCAcctPayoutExample example = new TdCAcctPayoutExample();
		example.createCriteria().andRltPayorderIdEqualTo(payOrderId).andDataStateEqualTo(1);
		List<TdCAcctPayout> list = tdCAcctPayoutMapper.selectByExample(example);
		return list;
	}

	@Override
	public PageInfo<TdCAcctPayout> queryAcctPayoutForPage(AcctPayoutForPageRequest request, int pageNum, int pageSize) {
		PageHelper.startPage(pageNum,pageSize);
		List<TdCAcctPayout> list = tdCAcctPayoutSMapper.getAcctPayout(request);
		return new PageInfo<TdCAcctPayout>(list);
	}

	@Override
	public AcctRechargeStatisticDTO statisticAcctPayOut(AcctPayoutForPageRequest request) {
		return tdCAcctPayoutSMapper.statisticAcctPayOut(request);
	}

	@Override
	public Integer updatePayout(TdCAcctPayout acctPayout) {
		return tdCAcctPayoutMapper.updateByPrimaryKeySelective(acctPayout);
	}
	
	@Override
	public List<OwnerPayOutDTO> queryOwnerPayOutByMonth(OwnerRequest request) {
		return tdCAcctPayoutSMapper.queryOwnerPayOutByMonth(request);
	}

	/**
	 * 根据充值时间查找最新的一条订单 ID
	 * @param rechargeTime
	 * @param acctId
	 * @return
	 */
	@Override
	public TdCAcctPayout queryAcctPayoutRltOrderId(Date rechargeTime, String acctId) {
		return tdCAcctPayoutSMapper.queryAcctPayoutRltOrderId(rechargeTime,acctId);
	}

}