Commit 27827bbd authored by suntao's avatar suntao

service 使用接口 和 实现

parent 3c384ae6
package cn.quantgroup.cashloanflowboss.api.channel.service;
import java.sql.Timestamp;
import java.util.*;
import cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfAddModel;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfBaseModel;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelListModel;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfCallbackConfiguration;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration;
import cn.quantgroup.cashloanflowboss.api.channel.repository.ChannelConfRepository;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderCallBack;
import cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType;
import cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil;
import cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService;
import cn.quantgroup.cashloanflowboss.utils.IgnorePropertiesUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
/**
* function:
* date: 2019/8/2
* date: 2019/9/16
*
* @author: suntao
*/
public interface ChannelConfService {
@Service
public class ChannelConfService {
Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId);
@Autowired
private CLFCenterService clfCenterService;
ChannelConfVo getChannelConf(Long channelId);
@Autowired
private ChannelConfRepository channelConfRepository;
public Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId) {
Page<ClfChannelConfiguration> page = clfCenterService.findChannelConfigurationByCriteriaQueryPage(pageNumber, pageSize, channelId);
Page<ChannelListModel> channelListModelPage = page.map(it -> {
ChannelListModel channelListModel = new ChannelListModel();
channelListModel.setChannelId(it.getRegisteredFrom());
channelListModel.setChannelName(it.getChannelName());
channelListModel.setChannelCode(it.getChannelCode());
channelListModel.setBizType(null);
channelListModel.setCreatedAt(it.getCreatedAt());
return channelListModel;
});
return channelListModelPage;
}
public ChannelConfVo getChannelConf(Long channelId) {
ChannelConf channelConf = channelConfRepository.getByChannelId(channelId);
if (channelConf != null) {
return ChannelConfUtil.channelConfConvertVOModel(channelConf);
} else {
// boss channel_conf 为空,从clf 查询数据
ClfChannelConfiguration channelConfiguration = clfCenterService.findChannelConfigurationByChannelId(channelId);
ClfOrderCallBack approve = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(KANoticeType.FUAD_ASSIFN_SUCC.name(), channelId);
ClfOrderCallBack orderStatus = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(KANoticeType.FUND_SUCC.name(), channelId);
ClfOrderCallBack repaymentPlan = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(KANoticeType.REPAYMENT.name(), channelId);
return ChannelConfUtil.getChannelConfVoByClf(channelConfiguration, approve, orderStatus, repaymentPlan);
}
}
public Boolean editChannelConfInfo(ChannelConfVo confVo) {
ChannelConfBaseModel basicInfo = confVo.getBasicInfo();
ChannelConfAddModel addInfo = confVo.getAddInfo();
ChannelConf channelConf = ChannelConfUtil.voModelConfConvertChannelConf(confVo);
ChannelConf channelConfExsit = channelConfRepository.getByChannelId(basicInfo.getChannelId());
// cash-loan-flow-boss 库
if (channelConfExsit == null) {
// 新保存
channelConf.setCreateTime(new Date());
channelConfRepository.save(channelConf);
} else {
// 更新数据库 数据
BeanUtils.copyProperties(channelConf, channelConfExsit, IgnorePropertiesUtil.getNullPropertyNames(channelConf));
channelConfExsit.setUpdateTime(new Date());
channelConfRepository.save(channelConfExsit);
}
// clf 库
ClfChannelConfiguration channelConfiguration = ChannelConfUtil.convert2ClfChannelConfiguration(basicInfo);
List<ClfOrderCallBack> clfOrderCallBackList = ChannelConfUtil.convert2ClfOrderCallback(basicInfo.getChannelId(), addInfo);
ClfChannelConfiguration channelConfigurationExsit = clfCenterService.findChannelConfigurationByChannelId(basicInfo.getChannelId());
if (channelConfigurationExsit == null) {
// 新保存
channelConfiguration.setCreatedAt(new Timestamp(System.currentTimeMillis()));
clfCenterService.saveChannelConfiguration(channelConfiguration);
ClfCallbackConfiguration clfCallbackConfiguration = ChannelConfUtil.convert2ClfCallbackConfiguration(basicInfo);
clfCenterService.saveCallbackConfiguration(clfCallbackConfiguration);
clfCenterService.saveOrderCall(clfOrderCallBackList);
} else {
// update
BeanUtils.copyProperties(channelConfiguration, channelConfigurationExsit, IgnorePropertiesUtil.getNullPropertyNames(channelConfiguration));
clfCenterService.saveChannelConfiguration(channelConfigurationExsit);
// 更新OrderCallBack
for (ClfOrderCallBack clfOrderCallBack : clfOrderCallBackList) {
ClfOrderCallBack orderCallBackExsit = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(clfOrderCallBack.getCallbackStatus().name(), clfOrderCallBack.getRegisteredFrom());
if (orderCallBackExsit != null) {
clfOrderCallBack.setId(orderCallBackExsit.getId());
}
}
clfCenterService.saveOrderCall(clfOrderCallBackList);
}
return true;
}
Boolean editChannelConfInfo(ChannelConfVo confVo);
}
package cn.quantgroup.cashloanflowboss.api.channel.service;
import java.sql.Timestamp;
import java.util.*;
import cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfAddModel;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfBaseModel;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelListModel;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfCallbackConfiguration;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration;
import cn.quantgroup.cashloanflowboss.api.channel.repository.ChannelConfRepository;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderCallBack;
import cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType;
import cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil;
import cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService;
import cn.quantgroup.cashloanflowboss.utils.IgnorePropertiesUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
/**
* function:
* date: 2019/8/2
*
* @author: suntao
*/
@Service
public class ChannelConfServiceImpl implements ChannelConfService{
@Autowired
private CLFCenterService clfCenterService;
@Autowired
private ChannelConfRepository channelConfRepository;
@Override
public Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId) {
Page<ClfChannelConfiguration> page = clfCenterService.findChannelConfigurationByCriteriaQueryPage(pageNumber, pageSize, channelId);
Page<ChannelListModel> channelListModelPage = page.map(it -> {
ChannelListModel channelListModel = new ChannelListModel();
channelListModel.setChannelId(it.getRegisteredFrom());
channelListModel.setChannelName(it.getChannelName());
channelListModel.setChannelCode(it.getChannelCode());
channelListModel.setBizType(null);
channelListModel.setCreatedAt(it.getCreatedAt());
return channelListModel;
});
return channelListModelPage;
}
@Override
public ChannelConfVo getChannelConf(Long channelId) {
ChannelConf channelConf = channelConfRepository.getByChannelId(channelId);
if (channelConf != null) {
return ChannelConfUtil.channelConfConvertVOModel(channelConf);
} else {
// boss channel_conf 为空,从clf 查询数据
ClfChannelConfiguration channelConfiguration = clfCenterService.findChannelConfigurationByChannelId(channelId);
ClfOrderCallBack approve = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(KANoticeType.FUAD_ASSIFN_SUCC.name(), channelId);
ClfOrderCallBack orderStatus = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(KANoticeType.FUND_SUCC.name(), channelId);
ClfOrderCallBack repaymentPlan = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(KANoticeType.REPAYMENT.name(), channelId);
return ChannelConfUtil.getChannelConfVoByClf(channelConfiguration, approve, orderStatus, repaymentPlan);
}
}
@Override
public Boolean editChannelConfInfo(ChannelConfVo confVo) {
ChannelConfBaseModel basicInfo = confVo.getBasicInfo();
ChannelConfAddModel addInfo = confVo.getAddInfo();
ChannelConf channelConf = ChannelConfUtil.voModelConfConvertChannelConf(confVo);
ChannelConf channelConfExsit = channelConfRepository.getByChannelId(basicInfo.getChannelId());
// cash-loan-flow-boss 库
if (channelConfExsit == null) {
// 新保存
channelConf.setCreateTime(new Date());
channelConfRepository.save(channelConf);
} else {
// 更新数据库 数据
BeanUtils.copyProperties(channelConf, channelConfExsit, IgnorePropertiesUtil.getNullPropertyNames(channelConf));
channelConfExsit.setUpdateTime(new Date());
channelConfRepository.save(channelConfExsit);
}
// clf 库
ClfChannelConfiguration channelConfiguration = ChannelConfUtil.convert2ClfChannelConfiguration(basicInfo);
List<ClfOrderCallBack> clfOrderCallBackList = ChannelConfUtil.convert2ClfOrderCallback(basicInfo.getChannelId(), addInfo);
ClfChannelConfiguration channelConfigurationExsit = clfCenterService.findChannelConfigurationByChannelId(basicInfo.getChannelId());
if (channelConfigurationExsit == null) {
// 新保存
channelConfiguration.setCreatedAt(new Timestamp(System.currentTimeMillis()));
clfCenterService.saveChannelConfiguration(channelConfiguration);
ClfCallbackConfiguration clfCallbackConfiguration = ChannelConfUtil.convert2ClfCallbackConfiguration(basicInfo);
clfCenterService.saveCallbackConfiguration(clfCallbackConfiguration);
clfCenterService.saveOrderCall(clfOrderCallBackList);
} else {
// update
BeanUtils.copyProperties(channelConfiguration, channelConfigurationExsit, IgnorePropertiesUtil.getNullPropertyNames(channelConfiguration));
clfCenterService.saveChannelConfiguration(channelConfigurationExsit);
// 更新OrderCallBack
for (ClfOrderCallBack clfOrderCallBack : clfOrderCallBackList) {
ClfOrderCallBack orderCallBackExsit = clfCenterService.findOrderCallBackByByCallbackStatusAndChannelId(clfOrderCallBack.getCallbackStatus().name(), clfOrderCallBack.getRegisteredFrom());
if (orderCallBackExsit != null) {
clfOrderCallBack.setId(orderCallBackExsit.getId());
}
}
clfCenterService.saveOrderCall(clfOrderCallBackList);
}
return true;
}
}
package cn.quantgroup.cashloanflowboss.api.optlog.service;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.repository.OptHistoryLogRepository;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel;
import cn.quantgroup.cashloanflowboss.api.order.util.OrderUtil;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ApplyRequestHistory;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.WithdrawRecord;
import cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.persistence.criteria.Predicate;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* function:
* date: 2019/9/4
* date: 2019/9/16
*
* @author: suntao
*/
@Service
public class OptHistoryLogService {
@Autowired
private CLFCenterService clfCenterService;
@Autowired
private OptHistoryLogRepository optHistoryLogRepository;
public List<OptHistoryLog> getAllOptHistoryLog(OrderBaseModel orderBaseModel) {
ClfOrderMapping orderMapping = clfCenterService.findOrderMappingByChannelOrderNo(orderBaseModel.getChannelOrderNumber());
if (orderMapping == null) {
return null;
}
// 用户操作日志 进件。。。
List<ApplyRequestHistory> applyRequestHistoryList = clfCenterService.findApplyRequestHistoryBySpecification(orderBaseModel);
// 管理员操作日志 审批。。。
List<OptHistoryLog> optHistoryLogList = getLocalOptHisttoryLog(orderBaseModel);
// 提现记录
List<WithdrawRecord> withdrawRecordList = clfCenterService.findWithdrawRecordList(orderBaseModel.getChannelOrderNumber(), orderMapping.getRegisteredFrom());
List<OptHistoryLog> withdrawOptHistoryLogList = OrderUtil.convertWithdrawRecordList2UserOptHistoryLogList(withdrawRecordList);
// 转换
List<OptHistoryLog> userOptHistoryLogList = OrderUtil.convertApplyRequestHistoryList2OptHistoryLogList(applyRequestHistoryList, orderMapping);
if (CollectionUtils.isNotEmpty(optHistoryLogList)) {
userOptHistoryLogList.addAll(optHistoryLogList);
}
if (CollectionUtils.isNotEmpty(withdrawOptHistoryLogList)) {
userOptHistoryLogList.addAll(withdrawOptHistoryLogList);
}
userOptHistoryLogList.sort((o1, o2)->{
if (o1.getCreateTime().getTime() < o2.getCreateTime().getTime()) {
return -1;
} else {
return 1;
}
});
return userOptHistoryLogList;
}
/**
* 只获取操作日志,boss库数据
* @param orderBaseModel
* @return
*/
List<OptHistoryLog> getLocalOptHisttoryLog(OrderBaseModel orderBaseModel) {
List<OptHistoryLog> page = this.optHistoryLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
// 指定渠道号
if (Objects.nonNull(orderBaseModel.getChannelId())) {
predicates.add(criteriaBuilder.equal(root.get("channelId"), orderBaseModel.getChannelId().longValue()));
}
if (StringUtils.isNotEmpty(orderBaseModel.getChannelOrderNumber())) {
predicates.add(criteriaBuilder.equal(root.get("channelOrderNumber"), orderBaseModel.getChannelOrderNumber()));
}
if (StringUtils.isNotEmpty(orderBaseModel.getApplyNo())) {
predicates.add(criteriaBuilder.equal(root.get("applyNo"), orderBaseModel.getApplyNo()));
}
if (orderBaseModel.getLoanId() != null && orderBaseModel.getLoanId() > 0) {
predicates.add(criteriaBuilder.equal(root.get("loanId"), orderBaseModel.getLoanId()));
}
// 设置查询条件
criteriaQuery.where(criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()])));
// 指定排序
criteriaQuery.orderBy(criteriaBuilder.desc(root.get("id")));
return criteriaQuery.getRestriction();
});
return page;
}
public void save(OptHistoryLog optHistoryLog) {
optHistoryLogRepository.save(optHistoryLog);
}
public interface OptHistoryLogService {
List<OptHistoryLog> getAllOptHistoryLog(OrderBaseModel orderBaseModel);
List<OptHistoryLog> getLocalOptHisttoryLog(OrderBaseModel orderBaseModel);
void save(OptHistoryLog optHistoryLog);
}
package cn.quantgroup.cashloanflowboss.api.optlog.service;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.repository.OptHistoryLogRepository;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel;
import cn.quantgroup.cashloanflowboss.api.order.util.OrderUtil;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ApplyRequestHistory;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.WithdrawRecord;
import cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.persistence.criteria.Predicate;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* function:
* date: 2019/9/4
*
* @author: suntao
*/
@Service
public class OptHistoryLogServiceImpl implements OptHistoryLogService {
@Autowired
private CLFCenterService clfCenterService;
@Autowired
private OptHistoryLogRepository optHistoryLogRepository;
@Override
public List<OptHistoryLog> getAllOptHistoryLog(OrderBaseModel orderBaseModel) {
ClfOrderMapping orderMapping = clfCenterService.findOrderMappingByChannelOrderNo(orderBaseModel.getChannelOrderNumber());
if (orderMapping == null) {
return null;
}
// 用户操作日志 进件。。。
List<ApplyRequestHistory> applyRequestHistoryList = clfCenterService.findApplyRequestHistoryBySpecification(orderBaseModel);
// 管理员操作日志 审批。。。
List<OptHistoryLog> optHistoryLogList = getLocalOptHisttoryLog(orderBaseModel);
// 提现记录
List<WithdrawRecord> withdrawRecordList = clfCenterService.findWithdrawRecordList(orderBaseModel.getChannelOrderNumber(), orderMapping.getRegisteredFrom());
List<OptHistoryLog> withdrawOptHistoryLogList = OrderUtil.convertWithdrawRecordList2UserOptHistoryLogList(withdrawRecordList);
// 转换
List<OptHistoryLog> userOptHistoryLogList = OrderUtil.convertApplyRequestHistoryList2OptHistoryLogList(applyRequestHistoryList, orderMapping);
if (CollectionUtils.isNotEmpty(optHistoryLogList)) {
userOptHistoryLogList.addAll(optHistoryLogList);
}
if (CollectionUtils.isNotEmpty(withdrawOptHistoryLogList)) {
userOptHistoryLogList.addAll(withdrawOptHistoryLogList);
}
userOptHistoryLogList.sort((o1, o2)->{
if (o1.getCreateTime().getTime() < o2.getCreateTime().getTime()) {
return -1;
} else {
return 1;
}
});
return userOptHistoryLogList;
}
/**
* 只获取操作日志,boss库数据
* @param orderBaseModel
* @return
*/
@Override
public List<OptHistoryLog> getLocalOptHisttoryLog(OrderBaseModel orderBaseModel) {
List<OptHistoryLog> page = this.optHistoryLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
// 指定渠道号
if (Objects.nonNull(orderBaseModel.getChannelId())) {
predicates.add(criteriaBuilder.equal(root.get("channelId"), orderBaseModel.getChannelId().longValue()));
}
if (StringUtils.isNotEmpty(orderBaseModel.getChannelOrderNumber())) {
predicates.add(criteriaBuilder.equal(root.get("channelOrderNumber"), orderBaseModel.getChannelOrderNumber()));
}
if (StringUtils.isNotEmpty(orderBaseModel.getApplyNo())) {
predicates.add(criteriaBuilder.equal(root.get("applyNo"), orderBaseModel.getApplyNo()));
}
if (orderBaseModel.getLoanId() != null && orderBaseModel.getLoanId() > 0) {
predicates.add(criteriaBuilder.equal(root.get("loanId"), orderBaseModel.getLoanId()));
}
// 设置查询条件
criteriaQuery.where(criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()])));
// 指定排序
criteriaQuery.orderBy(criteriaBuilder.desc(root.get("id")));
return criteriaQuery.getRestriction();
});
return page;
}
@Override
public void save(OptHistoryLog optHistoryLog) {
optHistoryLogRepository.save(optHistoryLog);
}
}
......@@ -10,7 +10,6 @@ import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRoleByChannelO
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.core.base.Tuple;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment