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实现类.
* * 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 csvList) { List payBlncacList = new ArrayList(); if(!CollectionUtil.isEmpty(csvList)){ /**先删除数据库中是插入支付宝账单日期的数据*/ this.delPayBlncacByBeginDate(csvList); /**拼接账单信息.*/ payBlncacList = this.getTdBPayBlncacList(csvList); } return tdBPayBlncacSMapper.insertPayBlncacList(payBlncacList); } /** * 拼接账单信息 * @param csvList * @param tdBPayOrderLists * @param tdBOrderLists * @return */ private List getTdBPayBlncacList(List csvList){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List payBlncacList = new ArrayList(); 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 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); } }