TdCAcctPayoutServiceImpl.java
5.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.zteits.pay.biz;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.zteits.clouds.api.dto.pay.AcctRechargeStatisticDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.xiaoleilu.hutool.date.DateField;
import com.xiaoleilu.hutool.date.DateUtil;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.apibase.bean.PageBean;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.exception.BizException;
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.param.AcctPayoutForPageRequest;
import com.zteits.clouds.api.dto.pay.param.AcctPayoutRequest;
import com.zteits.clouds.api.dto.pay.param.QueryAcctPayoutByPayOrderIdReq;
import com.zteits.clouds.api.service.pay.TdCAcctPayoutService;
import com.zteits.pay.dao.TdCAcctPayoutDao;
import com.zteits.pay.domain.TdCAcctPayout;
import com.zteits.pay.pagepager.PageBeanUtil;
@Service("com.zteits.pay.biz.TdCAcctPayoutServiceImpl")
public class TdCAcctPayoutServiceImpl implements TdCAcctPayoutService{
@Autowired
private TdCAcctPayoutDao tdCAcctPayoutDao;
@Override
public BizResult<Boolean> insertPayout(AcctPayoutRequest request) {
TdCAcctPayout acctPayoutDO = new TdCAcctPayout();
BeanUtils.copyProperties(request, acctPayoutDO);
Long flg = tdCAcctPayoutDao.insertPayout(acctPayoutDO);
return new BizResult<Boolean>(flg > 0?true:false);
}
/**
* 通过支付单id查询个人账户支出表.<br/>
* @param request
* @return
* 2018年4月12日 wangfs.<br/>
*/
@Override
public BizResult<List<AcctPayoutDTO>> queryAcctPayoutByPayOrderId(QueryAcctPayoutByPayOrderIdReq request) {
List<AcctPayoutDTO> acctPayoutDTOList = new ArrayList<>();
List<TdCAcctPayout> tdCAcctPayouts = tdCAcctPayoutDao.queryAcctPayoutByPayOrderId(request.getPayOrderId());
if(!CollectionUtils.isEmpty(tdCAcctPayouts)){
for(TdCAcctPayout acctPayout : tdCAcctPayouts) {
AcctPayoutDTO acctPayoutDTO = new AcctPayoutDTO();
BeanUtils.copyProperties(acctPayout, acctPayoutDTO);
acctPayoutDTOList.add(acctPayoutDTO);
}
}
return new BizResult<List<AcctPayoutDTO>>(acctPayoutDTOList);
}
@Override
public BizResult<PageBean<AcctPayoutDTO>> queryAcctPayoutForPage(AcctPayoutForPageRequest request) {
PageInfo<TdCAcctPayout> pageInfo = tdCAcctPayoutDao.queryAcctPayoutForPage(request , request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
PageBean<AcctPayoutDTO> pageBean = new PageBean<AcctPayoutDTO>();
PageBeanUtil.copyProperties(pageInfo, pageBean, AcctPayoutDTO.class);
return new BizResult<>(pageBean);
}
@Override
public BizResult<AcctRechargeStatisticDTO> statisticAcctPayOut(AcctPayoutForPageRequest request) {
AcctRechargeStatisticDTO dto = tdCAcctPayoutDao.statisticAcctPayOut(request);
return new BizResult<>(dto);
}
@Override
public BizResult<Boolean> updatePayout(AcctPayoutRequest request) {
TdCAcctPayout acctPayoutDO = new TdCAcctPayout();
BeanUtils.copyProperties(request, acctPayoutDO);
Integer flg = tdCAcctPayoutDao.updatePayout(acctPayoutDO);
return new BizResult<Boolean>(flg > 0?true:false);
}
@Override
public BizResult<List<OwnerPayOutDTO>> queryOwnerPayOutByMonth(OwnerRequest request) {
if (request.getBeginTime() == null || request.getEndTime() == null) {
request.setBeginTime(DateUtil.offset(new Date(), DateField.YEAR, -1));
request.setEndTime(DateUtil.endOfMonth(new Date()));
}
if (StringUtils.isEmpty(request.getCustId())) {
throw new BizException(ErrorType.PARAMM_NULL, "custId为空!");
}
List<OwnerPayOutDTO> list = tdCAcctPayoutDao.queryOwnerPayOutByMonth(request);
//填充数据为null的数据
Date beginTimes = request.getBeginTime();
Date endTimes = request.getEndTime();
list = fillDatas(list, request, beginTimes, endTimes);
return new BizResult<>(list);
}
/**
* 填充为空的数据
*
* @param list
* @param request
* @return 2018年7月30日 wangfei
*/
private List<OwnerPayOutDTO> fillDatas(List<OwnerPayOutDTO> list, OwnerRequest request, Date beginTimes,
Date endTimes) {
List<OwnerPayOutDTO> result = new ArrayList<>();
DateFormat monthformat = new SimpleDateFormat("yyyy-MM");
Date time = beginTimes;
//先遍历放入result所有为零的数据
while (time.getTime() < (endTimes.getTime())) {
OwnerPayOutDTO dto = new OwnerPayOutDTO();
dto.setDateStr(DateUtil.format(time, monthformat));
dto.setFee(0L);
result.add(dto);
time = DateUtil.offsetMonth(time, 1);
}
//再替换有结果的数据
for (OwnerPayOutDTO r : result) {
for (OwnerPayOutDTO l : list) {
if (r.getDateStr().equals(l.getDateStr())) {
BeanUtils.copyProperties(l, r);
}
}
}
return result;
}
}