TdBPayBlncacDaoImpl.java 5.32 KB
package com.zteits.pay.dao.impl;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import org.apache.commons.lang3.StringUtils;
import com.clouds.common.utils.DateUtil;
import com.xiaoleilu.hutool.util.ArrayUtil;
import com.xiaoleilu.hutool.util.CollectionUtil;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.PayOrderEnum;
import com.zteits.pay.dao.TdBPayBlncacDao;
import com.zteits.pay.domain.TdBPayBlncac;
import com.zteits.pay.mapper.smapper.TdBPayBlncacSMapper;
/**
 * 
 * 支付宝对账单Dao实现类.<br/>
 * 
 * Copyright: Copyright (c) 2017  zteits
 * 
 * @ClassName: TdBPayBlncacDaoImpl
 * @Description: 
 * @version: v1.0.0
 * @author: xiejianpeng
 * @date: 2017年7月4日 上午10:09:20
 * Modification History:
 * Date             Author          Version            Description
 *---------------------------------------------------------*
 * 2017年7月4日      xiejianpeng           v1.0.0               创建
 */
@Component("com.zteits.pay.dao.impl.TdBPayBlncacDaoImpl")
public class TdBPayBlncacDaoImpl implements TdBPayBlncacDao{
	
	@Autowired
	private TdBPayBlncacSMapper tdBPayBlncacSMapper;
	
	


	@Override
	public Integer insert(List<String[]> csvList) {
		List<TdBPayBlncac> payBlncacList = new ArrayList<TdBPayBlncac>();
		if(!CollectionUtil.isEmpty(csvList)){
			/**先删除数据库中是插入支付宝账单日期的数据*/
			this.delPayBlncacByBeginDate(csvList);
			/**拼接账单信息.*/
			payBlncacList = this.getTdBPayBlncacList(csvList);
		}
		return tdBPayBlncacSMapper.insertPayBlncacList(payBlncacList);
	}
	
	
	/**
	 * 拼接账单信息
	 * @param csvList
	 * @param tdBPayOrderLists
	 * @param tdBOrderLists
	 * @return
	 */
	private List<TdBPayBlncac> getTdBPayBlncacList(List<String[]> csvList){
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		List<TdBPayBlncac> payBlncacList = new ArrayList<TdBPayBlncac>();
		try {
			for(String[] str:csvList){
				if(ArrayUtil.isNotEmpty(str)){
					TdBPayBlncac record = new TdBPayBlncac();
					record.setRltPayOrderId(StringUtils.isNotEmpty(str[0]) ? str[0] : ""); //支付单交易号
					record.setPayOrderId(StringUtils.isNotEmpty(str[1]) ? str[1] : "");    //支付单编号
					if(StringUtils.isNotEmpty(str[2])){
						if(str[2].trim().equals("交易")){
							record.setBusType(Integer.valueOf(PayOrderEnum.BUS_TYPE_DEAL.getValue()));
						}else if(str[2].trim().equals("退款")){
							record.setBusType(Integer.valueOf(PayOrderEnum.BUS_TYPE_REFUND.getValue()));
						}
					}
					record.setOrderRefundId(StringUtils.isNotEmpty(str[21]) ? str[21] : "");                  //退款批次号
					record.setPayCreateTime(StringUtils.isNotEmpty(str[4]) ? format.parse(str[4]) : null);    //开始时间
					record.setPayFinishTime(StringUtils.isNotEmpty(str[5]) ? format.parse(str[5]) : null);	  //结束时间
					record.setCollAccount(StringUtils.isNotEmpty(str[10]) ? str[10] : "");                     //收款账号
					record.setPayFee(StringUtils.isNotEmpty(str[11]) ? BigDecimal.valueOf(Double.valueOf(str[11])*100) : null);   //应收
					record.setActualFee(StringUtils.isNotEmpty(str[12]) ? BigDecimal.valueOf(Double.valueOf(str[12])*100) : null);//实收
					record.setServeFee(StringUtils.isNotEmpty(str[22]) ? BigDecimal.valueOf(Double.valueOf(str[22])*100) : null);//服务费
					record.setProfitFee(StringUtils.isNotEmpty(str[23]) ? BigDecimal.valueOf(Double.valueOf(str[23])*100) : null);//分润
					record.setDataState(DataStatusEnum.DATA_STATUS_VALID.value()); //数据有效
					Date beginTime = DateUtil.getTimestamp(DateUtil.getDateString(format.parse(str[4]), DateUtil.DATE_FORMAT));
					Date endTime = DateUtil.getTimestamp(DateUtil.getDateString(DateUtil.getOffsetDaysDate(format.parse(str[4]), 1), DateUtil.DATE_FORMAT));
					record.setBillBeginTime(beginTime);   //账期开始时间
					record.setBillEndTime(endTime);       //账期结束时间
					record.setRemark(StringUtils.isNotEmpty(str[24]) ? str[24] : "");      //备注
					record.setCreateDate(new Date());     //创建时间
					//record.setPayAccount(tdBPayOrder.getPayAccount());   //支付账号
					record.setPayChannel(Integer.valueOf(PayOrderEnum.PAY_TYPE_ZFB.getValue()));
					
					payBlncacList.add(record);
				}
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}  
		return payBlncacList;
	}
	/**
	 * 删除要插入支付单日账期是要插入的日期的数据
	 * @param csvList
	 * @return
	 */
	private Integer delPayBlncacByBeginDate(List<String[]> csvList) {
		Date beginTime = null;
		/**先删除要插入支付单日账期是要插入的日期的数据*/
		for(String[] str:csvList){
			if(ArrayUtil.isNotEmpty(str)){
				SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				try {
					beginTime =format.parse(str[4]);
				} catch (ParseException e) {
					e.printStackTrace();
				}
			}
		}
		TdBPayBlncac tdBPayBlncac = new TdBPayBlncac();
		tdBPayBlncac.setBillBeginTime(beginTime);
		tdBPayBlncac.setPayChannel(Integer.valueOf(PayOrderEnum.PAY_TYPE_ZFB.getValue()));
		return tdBPayBlncacSMapper.delPayBlncacByBeginDate(tdBPayBlncac);
	}
	

}