TdCAcctPersonDaoImpl.java
7.71 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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
/**
*
*/
package com.zteits.pay.dao.impl;
import org.apache.commons.collections4.CollectionUtils;
import com.clouds.common.utils.DateUtil;
import com.clouds.common.utils.SequenceUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.constants.SequenceTypeEnum;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.pay.AcctPersonDTO;
import com.zteits.clouds.api.dto.pay.account.dto.AccountInOutDetailForPageDTO;
import com.zteits.clouds.api.dto.pay.account.param.AccoutRecordDetailRequest;
import com.zteits.clouds.api.dto.pay.account.param.AcctInOutDetailForPageRequest;
import com.zteits.clouds.api.dto.pay.dto.AcctPersonForStoreCarDTO;
import com.zteits.clouds.api.dto.pay.param.*;
import com.zteits.pay.domain.TdCAcctPerson;
import com.zteits.pay.domain.TdCAcctPersonExample;
import com.zteits.pay.mapper.TdCAcctPersonMapper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.zteits.pay.dao.TdCAcctPersonDao;
import com.zteits.pay.mapper.smapper.TdCAcctPersonSMapper;
/**
* @author hxz
*
*/
@Component
public class TdCAcctPersonDaoImpl implements TdCAcctPersonDao {
@Autowired
private TdCAcctPersonSMapper tdCAcctPersonSMapper;
@Autowired
private TdCAcctPersonMapper tdCAcctPersonMapper;
@Override
public Integer insertAcctPerson(TdCAcctPerson acctPersonDo) {
if(acctPersonDo.getOrgId() == null){
throw new BizException(ErrorType.APP_ERROR,"区域编码为空",false);
}
return tdCAcctPersonMapper.insertSelective(acctPersonDo);
}
@Override
public Boolean updateAcctPerson(TdCAcctPerson acctPersonDo) {
try {
int updateResult = tdCAcctPersonSMapper.updateAcctPerson(acctPersonDo);
if (updateResult > 0) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
}
@Override
public TdCAcctPerson getAcctPerson(TdCAcctPerson acctPersonDo) {
return tdCAcctPersonSMapper.getAcctPerson(acctPersonDo);
}
@Override
public List<TdCAcctPerson> queryAcctPersonByCustIdAndAcctType(QueryAcctPersonByCustIdsAndAcctTypeReq request) {
return tdCAcctPersonSMapper.queryAcctPersonByCustIdAndAcctType(request);
}
@Override
public List<AcctPersonDTO> getAcctPersonGroupByOrgId(QueryAcctPersonByCustIdsAndAcctTypeReq request) {
return tdCAcctPersonSMapper.getAcctPersonGroupByOrgId(request);
}
@Override
public List<TdCAcctPerson> getAcctPersonGroupByAcctType(QueryAcctPersonByCustIdsAndAcctTypeReq request) {
return tdCAcctPersonSMapper.getAcctPersonGroupByAcctType(request);
}
@Override
public TdCAcctPerson addFeeForCustPresentAcct(Long orgId, Long rechargeFee, int accType, String custId) {
TdCAcctPerson acctPersonDTO = new TdCAcctPerson();
//查询是否已经有该类型的账户了
QueryAcctPersonByCustIdsAndAcctTypeReq queryAcctPersonByCustIdAndAcctTypeReq = new QueryAcctPersonByCustIdsAndAcctTypeReq();
List<Integer> list = new ArrayList<>();
list.add(accType);
queryAcctPersonByCustIdAndAcctTypeReq.setCustId(custId);
queryAcctPersonByCustIdAndAcctTypeReq.setAcctTypeList(list);
queryAcctPersonByCustIdAndAcctTypeReq.setOrgId(orgId);
List<TdCAcctPerson> rsAccPerson = this.queryAcctPersonByCustIdAndAcctType(queryAcctPersonByCustIdAndAcctTypeReq);
if(CollectionUtils.isEmpty(rsAccPerson)) {
//创建对应账户
acctPersonDTO.setCustId(custId);
acctPersonDTO.setAcctType(accType);
acctPersonDTO.setAcctBalance(new BigDecimal(rechargeFee));
acctPersonDTO.setAcctId(SequenceUtil.getNextId(SequenceTypeEnum.ACCOUNT_ID_P_SQE));
acctPersonDTO.setAcctOrder(1);
/**设置单位: 1:分,2:张,3:次,4:小时,5:天,6:个'*/
acctPersonDTO.setAcctTypeUnit(1);
/**设置是否是主账户 1:是,0:否 -目前现金账户为主账户'*/
acctPersonDTO.setMainFlg(0);
acctPersonDTO.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
acctPersonDTO.setCreateDate(DateUtil.getSysDate());
acctPersonDTO.setModfiyDate(DateUtil.getSysDate());
acctPersonDTO.setOrgId(orgId);
int innum = this.insertAcctPerson(acctPersonDTO);
if(innum<=0){
throw new BizException(ErrorType.APP_ERROR,"创建赠款账户失败",false);
}
}else{
//更新账户余额
acctPersonDTO = rsAccPerson.get(0);
TdCAcctPerson upAcctPersonDO = new TdCAcctPerson();
upAcctPersonDO.setCustId(custId);
upAcctPersonDO.setOrgId(orgId);
upAcctPersonDO.setAcctType(accType);
upAcctPersonDO.setAcctBalance(acctPersonDTO.getAcctBalance().add(new BigDecimal(rechargeFee)));
Boolean upBoolean = this.updateAcctPerson(upAcctPersonDO);
if(!upBoolean){
throw new BizException(ErrorType.APP_ERROR,"更新赠款账户失败",false);
}
//回填金额
acctPersonDTO.setAcctBalance(upAcctPersonDO.getAcctBalance());
}
return acctPersonDTO;
}
@Override
public PageInfo<AccountInOutDetailForPageDTO> queryAccountInOutDetailsForPage(AcctInOutDetailForPageRequest request) {
PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
List<AccountInOutDetailForPageDTO> resultList = tdCAcctPersonSMapper.queryAccountInOutDetailsForPage(request);
PageInfo<AccountInOutDetailForPageDTO> pageInfo = new PageInfo<>(resultList);
if(pageInfo.getPages()<request.getBaseRequest().getPageNum()){
if(!org.springframework.util.CollectionUtils.isEmpty(resultList)){
resultList.removeAll(resultList);
}
}
return new PageInfo<>(resultList);
}
/**
* 通过账户 ID 查询个人账户信息
* @Auther: wangfs
* @param
* @return
*/
@Override
public TdCAcctPerson getAcctPersonByAcctId(String acctId) {
TdCAcctPersonExample example = new TdCAcctPersonExample();
example.createCriteria().andDataStateEqualTo(1)
.andAcctIdEqualTo(acctId);
List<TdCAcctPerson> list = tdCAcctPersonMapper.selectByExample(example);
return CollectionUtils.isNotEmpty(list)?list.get(0) : new TdCAcctPerson() ;
}
@Override
public TdCAcctPerson getAcctPersonByAcctIdAndAcctType(String acctId, List<Integer> acctTypes) {
TdCAcctPersonExample example = new TdCAcctPersonExample();
TdCAcctPersonExample.Criteria sql = example.createCriteria();
if(CollectionUtils.isNotEmpty(acctTypes)){
sql.andAcctTypeIn(acctTypes);
}
sql.andDataStateEqualTo(1);
sql.andAcctIdEqualTo(acctId);
List<TdCAcctPerson> list = tdCAcctPersonMapper.selectByExample(example);
return CollectionUtils.isNotEmpty(list)?list.get(0) : new TdCAcctPerson() ;
}
/**
* 个人账户金额加或者减操作
* @Auther: wangfs
* @param
* @return
*/
@Override
public Integer addOrsubAcctPersonFeeByAcctId(AddOrsubAcctPersonFeeByAcctIdReq req) {
return tdCAcctPersonSMapper.addOrsubAcctPersonFeeByAcctId(req);
}
@Override
public PageInfo<AcctPersonForStoreCarDTO> queryAcctPersonStoreCarForPage(QueryAcctPersonForPageReq request) {
PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
List<AcctPersonForStoreCarDTO> resultList = tdCAcctPersonSMapper.queryAcctPersonStoreCarForPage(request);
PageInfo<AcctPersonForStoreCarDTO> pageInfo = new PageInfo<>(resultList);
if(pageInfo.getPages()<request.getBaseRequest().getPageNum()){
if(!org.springframework.util.CollectionUtils.isEmpty(resultList)){
resultList.removeAll(resultList);
}
}
return new PageInfo<>(resultList);
}
@Override
public List<AccountInOutDetailForPageDTO> queryAccountRecordDetails(AccoutRecordDetailRequest req) {
return tdCAcctPersonSMapper.queryAccountRecordDetails(req);
}
}