package com.yami.trading.admin.controller.loan.internal;
|
|
import java.io.Serializable;
|
import java.math.BigDecimal;
|
import java.sql.Timestamp;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.regex.Pattern;
|
import java.util.stream.Collectors;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.yami.trading.admin.controller.loan.LoanService;
|
import com.yami.trading.bean.finance.Finance;
|
import com.yami.trading.bean.loan.LoanParam;
|
import com.yami.trading.bean.loan.SimpleLoanOrder;
|
import com.yami.trading.bean.model.User;
|
import com.yami.trading.common.constants.Constants;
|
import com.yami.trading.common.domain.Result;
|
import com.yami.trading.common.exception.BusinessException;
|
import com.yami.trading.dao.loan.LoanParamMapper;
|
import com.yami.trading.service.user.UserService;
|
import lombok.Getter;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.cglib.beans.BeanMap;
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.RowMapper;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
/**
|
* @author JORGE
|
* @description 借贷服务接口实现类
|
*/
|
@Slf4j
|
@Service
|
@Transactional
|
public class LoanServiceImpl implements LoanService {
|
|
@Autowired
|
private JdbcTemplate jdbcTemplate;
|
|
@Autowired
|
UserService userService;
|
|
@Autowired
|
LoanParamMapper loanParamMapper;
|
|
@Getter
|
HashMap<String,Object> paramMap = new HashMap<>();
|
|
/**
|
* 借贷状态字典
|
*/
|
private static HashMap<Integer,String> stateMap;
|
|
/**
|
* 付款方式字典
|
*/
|
private static HashMap<Integer,String> repayments;
|
|
/**
|
* 逗号正则表达式
|
*/
|
private static Pattern commaPattern=Pattern.compile(",");
|
|
/**
|
* 冒号正则表达式
|
*/
|
private static Pattern colonPattern=Pattern.compile(":");
|
|
/**
|
* 放款机构字典
|
*/
|
private static HashMap<Integer,String> lendingInstitutions;
|
|
public LoanServiceImpl() {
|
stateMap=new HashMap<Integer,String>();
|
repayments=new HashMap<Integer,String>();
|
lendingInstitutions=new HashMap<Integer,String>();
|
|
stateMap.put(1, "未审");
|
stateMap.put(2, "待还款");
|
stateMap.put(3, "驳回");
|
stateMap.put(4, "已逾期");
|
stateMap.put(5, "已还款");
|
|
repayments.put(1,"到期还本息");
|
repayments.put(2,"到期还本金");
|
repayments.put(3,"到期还利息");
|
|
lendingInstitutions.put(1,"LOAN1");
|
lendingInstitutions.put(2,"LOAN2");
|
lendingInstitutions.put(3,"LOAN3");
|
}
|
|
@Override
|
public Boolean addLoanOrder(SimpleLoanOrder simpleLoanOrder) {
|
// Object primaryKey= DBUtil.executeInsert(simpleLoanOrder);
|
String sql="insert into t_simple_loan_order(uuid,party_id,symbol,quota,state,term,create_time,repay_cycle,daily_rate,repayment,lending_institution,lending_name,reason,house_imgs,income_img)" +
|
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
|
|
// `uuid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '订单主键',
|
// `party_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '借贷用户ID',
|
// `symbol` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '借贷币种',
|
// `quota` int(8) NOT NULL COMMENT '借贷额度',
|
// `state` int(1) NULL DEFAULT 1 COMMENT '审核状态',
|
// `term` int(8) NOT NULL COMMENT '借贷期限(天)',
|
// `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '申请时间',
|
// `repay_cycle` int(8) NOT NULL COMMENT '还款周期(天)',
|
// `daily_rate` double(5, 4) NOT NULL COMMENT '日利率(浮点数)',
|
// `repayment` int(2) NOT NULL COMMENT '还款方式(文本)',
|
// `lending_institution` int(2) NOT NULL COMMENT '放款机构(文本)',
|
// `lending_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '放款机构名称',
|
// `reason` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
|
// `house_imgs` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '房屋信息图片',
|
// `income_img` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收入证明图片',
|
System.out.println("xxx= " + simpleLoanOrder.getHouseImgs());
|
//变式为
|
Object[] args= {
|
simpleLoanOrder.getUuid(),
|
simpleLoanOrder.getPartyId(),
|
simpleLoanOrder.getSymbol(),
|
simpleLoanOrder.getQuota(),
|
simpleLoanOrder.getState(),
|
simpleLoanOrder.getTerm(),
|
simpleLoanOrder.getCreateTime(),
|
simpleLoanOrder.getRepayCycle(),
|
simpleLoanOrder.getDailyRate(),
|
simpleLoanOrder.getRepayment(),
|
simpleLoanOrder.getLendingInstitution(),
|
simpleLoanOrder.getLendingName(),
|
simpleLoanOrder.getReason(),
|
simpleLoanOrder.getHouseImgs(),
|
simpleLoanOrder.getIncomeImg()
|
};
|
int update = jdbcTemplate.update(sql, args);
|
|
//输出影响的值
|
System.out.println(update);
|
|
return true;
|
}
|
|
@Override
|
public List<LoanParam> getLoanParamList(String uuid){
|
List<LoanParam> loanParamList = new ArrayList<>();
|
if(StringUtils.isBlank(uuid)){
|
// loanParamList = DBUtil.executeSelect(LoanParam.class);
|
String str = "select uuid,term,max_quota,min_quota,repay_cycle,daily_rate,repayment,lending_institution,lending_name from t_loan_param where 1=1;";
|
List<Map<String,Object>> mapList = jdbcTemplate.queryForList(str);
|
for(int i = 0 ; i < mapList.size() ; i++){
|
Map<String,Object> map1 = mapList.get(i);
|
LoanParam loan1 = JSON.parseObject(JSON.toJSONString(map1),LoanParam.class);
|
loanParamList.add(loan1);
|
}
|
// System.out.println("mapList=>"+mapList);
|
// loanParamList = jdbcTemplate.queryForList(str,LoanParam.class);
|
}else {
|
// loanParamList = DBUtil.executeSelect(LoanParam.class,"WHERE UUID=?",new Object[] {uuid});
|
String str = "select uuid,term,max_quota,min_quota,repay_cycle,daily_rate,repayment,lending_institution,lending_name from t_loan_param where 1=1 and uuid ="+uuid+";";
|
// loanParamList = jdbcTemplate.queryForList(str,LoanParam.class);
|
List<Map<String,Object>> mapList = jdbcTemplate.queryForList(str);
|
for(int i = 0 ; i < mapList.size() ; i++){
|
Map<String,Object> map1 = mapList.get(i);
|
LoanParam loan1 = JSON.parseObject(JSON.toJSONString(map1),LoanParam.class);
|
loanParamList.add(loan1);
|
}
|
}
|
|
return loanParamList;
|
}
|
|
@Override
|
public HashMap<String,Object> getLoanParams(String uuid) {
|
LoanParam loanParam=null;
|
List<LoanParam> loanParamList = new ArrayList<>();
|
if(null==uuid || (uuid=uuid.trim()).isEmpty()) {
|
// List<LoanParam> loanParamList=DBUtil.executeSelect(LoanParam.class);
|
// loanParam=(null==loanParamList || loanParamList.isEmpty())?null:loanParamList.get(0);
|
|
String str = "select uuid,term,max_quota,min_quota,repay_cycle,daily_rate,repayment,lending_institution from t_loan_param where 1=1;";
|
// List<Map<String,Object>> mapList = jdbcTemplate.queryForList(str);
|
// System.out.println("mapList=>"+mapList);
|
// loanParamList = jdbcTemplate.queryForList(str,LoanParam.class);
|
|
List<Map<String,Object>> mapList = jdbcTemplate.queryForList(str);
|
for(int i = 0 ; i < mapList.size() ; i++){
|
Map<String,Object> map1 = mapList.get(i);
|
LoanParam loan1 = JSON.parseObject(JSON.toJSONString(map1),LoanParam.class);
|
loanParamList.add(loan1);
|
}
|
|
}else {
|
// loanParam=DBUtil.executeGet(uuid, LoanParam.class);
|
|
String str = "select uuid,term,max_quota,min_quota,repay_cycle,daily_rate,repayment,lending_institution from t_loan_param where 1=1 and uuid ="+uuid+";";
|
// loanParamList = jdbcTemplate.queryForList(str,LoanParam.class);
|
List<Map<String,Object>> mapList = jdbcTemplate.queryForList(str);
|
for(int i = 0 ; i < mapList.size() ; i++){
|
Map<String,Object> map1 = mapList.get(i);
|
LoanParam loan1 = JSON.parseObject(JSON.toJSONString(map1),LoanParam.class);
|
loanParamList.add(loan1);
|
}
|
}
|
|
loanParam=(null==loanParamList || loanParamList.isEmpty())?null:loanParamList.get(0);
|
|
if(null==loanParam) return null;
|
|
HashMap<String,Object> paramMap=new HashMap<String,Object>(BeanMap.create(loanParam));
|
String term=(String)paramMap.get("term");
|
if(null==term || (term=term.trim()).isEmpty()) {
|
paramMap.put("termList",new Object[0]);
|
}else {
|
paramMap.put("termList",commaPattern.splitAsStream(term).map(tr->new String[] {tr,tr}).collect(Collectors.toList()));
|
}
|
|
String repayCycle=(String)paramMap.get("repayCycle");
|
if(null==repayCycle || (repayCycle=repayCycle.trim()).isEmpty()) {
|
paramMap.put("repayCycleList",new Object[0]);
|
}else {
|
paramMap.put("repayCycleList",commaPattern.splitAsStream(repayCycle).map(rc->new String[] {rc,rc}).collect(Collectors.toList()));
|
}
|
|
String dailyRate=(String)paramMap.get("dailyRate");
|
if(null==dailyRate || (dailyRate=dailyRate.trim()).isEmpty()) {
|
paramMap.put("dailyRateList",new Object[0]);
|
}else {
|
paramMap.put("dailyRateList",commaPattern.splitAsStream(dailyRate).map(dr->new String[] {dr,dr}).collect(Collectors.toList()));
|
}
|
|
String repayment=(String)paramMap.get("repayment");
|
if(null==repayment || (repayment=repayment.trim()).isEmpty()) {
|
paramMap.put("repaymentList",new Object[0]);
|
}else {
|
paramMap.put("repaymentList",commaPattern.splitAsStream(repayment).map(rep->colonPattern.split(rep)).collect(Collectors.toList()));
|
}
|
|
String lendingInstitution=(String)paramMap.get("lendingInstitution");
|
if(null==lendingInstitution || (lendingInstitution=lendingInstitution.trim()).isEmpty()) {
|
paramMap.put("lendingList",new Object[0]);
|
}else {
|
paramMap.put("lendingList",commaPattern.splitAsStream(lendingInstitution).map(led->colonPattern.split(led)).collect(Collectors.toList()));
|
}
|
|
paramMap.put("stateList",commaPattern.splitAsStream("1:未审,2:通过,3:驳回").map(stat->colonPattern.split(stat)).collect(Collectors.toList()));
|
|
return paramMap;
|
}
|
|
@Override
|
public Page pagedQuery(Map<String, Object> queryParams) {
|
int pageSize=(Integer)queryParams.get("pageSize");
|
int pageNo=(Integer)queryParams.get("pageNo");
|
if (pageNo <= 0) pageNo = 1;
|
|
StringBuilder whereStatement1=new StringBuilder("select count(*) from t_simple_loan_order WHERE 1=1 ");
|
|
String userName=(String)queryParams.get("userName");
|
String orderNo=(String)queryParams.get("orderNo");
|
|
Object children= queryParams.get("children");
|
|
int status=(Integer)queryParams.get("status");
|
|
StringBuilder queryStatement=new StringBuilder("select * from t_simple_loan_order WHERE 1=1 ");
|
|
StringBuilder where =new StringBuilder();
|
|
|
if(0!=status) {
|
where.append("AND STATE=");
|
where.append(status);
|
}
|
|
if(Objects.nonNull(children)) {
|
List<String> childrens = (List<String>) children;
|
where.append(" AND party_id in");
|
|
StringBuffer partyIdsBuf = new StringBuffer();
|
for (String onePartyId : childrens) {
|
partyIdsBuf.append("'").append(onePartyId.trim()).append("',");
|
}
|
partyIdsBuf.deleteCharAt(partyIdsBuf.length() - 1);
|
where.append("(" + partyIdsBuf.toString() + ") ");
|
}
|
|
if(null!=orderNo && !(orderNo=orderNo.trim()).isEmpty()) {
|
where.append(" AND UUID=");
|
where.append("'"+orderNo+"'");
|
}
|
|
if(null!=userName && !(userName=userName.trim()).isEmpty()) {
|
where.append(" AND PARTY_ID=(SELECT USER_ID FROM tz_user WHERE user_name= ");
|
where.append("'"+userName+"'");
|
where.append(")");
|
}
|
|
queryStatement.append(where);
|
|
queryStatement.append(" ORDER BY CREATE_TIME DESC");
|
|
|
String countQuery = whereStatement1.append(where).toString();
|
|
int count = jdbcTemplate.queryForObject(countQuery ,Integer.class);
|
|
Page page = new Page(pageNo, pageSize, count);
|
|
if(StringUtils.isEmpty(orderNo) && StringUtils.isEmpty(userName)){
|
queryStatement.append(" LIMIT ");
|
queryStatement.append((page.getCurrent()-1)*pageSize);
|
queryStatement.append(",");
|
queryStatement.append(pageSize);
|
}
|
|
queryStatement.append(";");
|
|
RowMapper<SimpleLoanOrder> rowMapper=new BeanPropertyRowMapper<>(SimpleLoanOrder.class);
|
List<SimpleLoanOrder> orderList=jdbcTemplate.query(queryStatement.toString(),rowMapper);
|
|
// List<SimpleLoanOrder> orderList=DBUtil.executeSelect(SimpleLoanOrder.class,whereStatement.toString(),paramList.toArray(new Object[paramList.size()]));
|
if(null==orderList || orderList.isEmpty()) return page;
|
String partyIds=orderList.stream().map(order->order.getPartyId()).collect(Collectors.joining(","));
|
// List<User> partyList=DBUtil.executeSelect(User.class,"WHERE FIND_IN_SET(UUID,?)",new Object[] {partyIds});
|
|
// System.out.println(Arrays.asList(partyIds.split(",")));
|
|
List<String> array = Arrays.asList(partyIds.split(","));
|
// System.out.println(array);
|
// System.out.println(array.size());
|
// array.set(0,"0042a30afe9d5eab655ff7ba39d30dca");
|
|
|
|
List<User> partyList = userService.listByIds(array);
|
|
Map<?,?> idToNameMap=partyList.stream().collect(Collectors.toMap(party->party.getUserId(),party->party.getUserName(),(oldname,newname)->newname));
|
Map<?,?> rolenameMap=partyList.stream().collect(Collectors.toMap(party->party.getUserId(),party->party.getRoleName(),(oldname,newname)->newname));
|
|
Date endDay = new Date();
|
Long endTimel = endDay.getTime();
|
List<HashMap<String,Object>> transferList=orderList.stream().map(order->{
|
Integer state=order.getState();
|
Integer rep=order.getRepayment();
|
String houseImgs=(String)order.getHouseImgs();
|
Integer led=order.getLendingInstitution();
|
houseImgs=null==houseImgs?null:(houseImgs=houseImgs.trim()).isEmpty()?null:houseImgs;
|
HashMap<String,Object> transferMap=new HashMap<String,Object>(BeanMap.create(order));
|
transferMap.put("state", new Object[] {state,stateMap.get(state)});
|
transferMap.put("userName", idToNameMap.get(order.getPartyId()));
|
transferMap.put("rolename", rolenameMap.get(order.getPartyId()));
|
if(ObjectUtils.isNotEmpty(transferMap.get("rolename"))) {
|
String roleName = transferMap.get("rolename").toString();
|
transferMap.put("roleNameDesc", Constants.ROLE_MAP.containsKey(roleName) ? Constants.ROLE_MAP.get(roleName) : roleName);
|
}
|
|
transferMap.put("repayment", new Object[] {rep,repayments.get(rep)});
|
String[] imgs = null == houseImgs ? new String[0] : commaPattern.split(houseImgs);
|
for (int i = 0; i < imgs.length; i++) {
|
imgs[i] = Constants.IMAGES_HTTP + imgs[i];
|
}
|
transferMap.put("houseImgs", imgs);
|
transferMap.put("lendingInstitution", new Object[] {led,order.getLendingName()});
|
|
|
Long starTimel = order.getCreateTime().getTime();
|
Long num = endTimel - starTimel;
|
Long remainQuota = num/24/60/60/1000;
|
order.setTotalInterest(BigDecimal.ZERO);
|
order.setRemainQuota(0);
|
if(order.getState().intValue()==2||order.getState().intValue()==4) {
|
BigDecimal totalInterest = order.getDailyRate().multiply(new BigDecimal(remainQuota)).multiply(order.getQuota());
|
order.setTotalInterest(totalInterest);
|
order.setRemainQuota(order.getTerm() - remainQuota.intValue());
|
transferMap.put("totalInterest", totalInterest);
|
}
|
|
return transferMap;
|
}).collect(Collectors.toList());
|
page.setRecords(transferList);
|
|
return page;
|
}
|
|
@Override
|
public boolean deleteLoanOrder(String orderId) {
|
if(null==orderId || (orderId=orderId.trim()).isEmpty()) {
|
throw new BusinessException("申请单ID不能为空!");
|
}
|
|
// int count=DBUtil.executeDel(orderId,SimpleLoanOrder.class);
|
String sql = "delete * from t_simple_loan_order where 1=1 and uuid=?;";
|
int count=jdbcTemplate.update(sql,orderId);
|
if(1!=count) {
|
throw new BusinessException("根据申请单ID删除了多条记录,说明申请单ID重复!");
|
}
|
|
return count==1?true:false;
|
}
|
|
@Override
|
public boolean updateLoanOrderState(String orderId, String status,String reason) {
|
if(null==orderId || (orderId=orderId.trim()).isEmpty()) {
|
throw new BusinessException("申请单ID不能为空!");
|
}
|
|
if(null==status || (status=status.trim()).isEmpty()) {
|
throw new BusinessException("审核状态不能为空!");
|
}
|
|
int state=Integer.parseInt(status);
|
int count=0;
|
if(StringUtils.isNotBlank(reason)) {
|
count = jdbcTemplate.update("UPDATE T_SIMPLE_LOAN_ORDER SET state=?,REASON=? WHERE UUID=?",state,reason,orderId);
|
}else {
|
count = jdbcTemplate.update("UPDATE T_SIMPLE_LOAN_ORDER SET state=? WHERE UUID=?",state,orderId);
|
}
|
if(1!=count) {
|
throw new BusinessException("根据申请单ID修改了多条记录,说明申请单ID重复!");
|
}
|
|
return true;
|
}
|
|
@Override
|
public Boolean modLoanOrder(SimpleLoanOrder simpleLoanOrder) {
|
Serializable id=simpleLoanOrder.getUuid();
|
if(null==id) {
|
throw new BusinessException("申请单ID不能为空!");
|
}
|
|
// Set<String> excludeFields=new HashSet<String>();
|
// excludeFields.add("id");
|
// excludeFields.add("partyId");
|
// excludeFields.add("state");
|
// excludeFields.add("incomeImg");
|
// excludeFields.add("incomeImg");
|
// excludeFields.add("lendingInstitution");
|
//
|
// int count=DBUtil.executeUpdate(simpleLoanOrder,excludeFields);
|
|
String sql = "update t_simple_loan_order set quota = " + simpleLoanOrder.getQuota() + " where 1=1 and uuid='"+id+"';";
|
System.out.println("sql => " + sql);
|
int count=jdbcTemplate.update(sql);
|
|
if(1!=count) {
|
throw new BusinessException("根据申请单ID修改了多条记录,说明申请单ID重复!");
|
}
|
|
return true;
|
}
|
|
@Override
|
public SimpleLoanOrder getLoanOrder(String partyId,String orderId) {
|
if(null==orderId || (orderId=orderId.trim()).isEmpty()) {
|
throw new BusinessException("申请单ID不能为空!");
|
}
|
|
ArrayList<Object> paramList=new ArrayList<Object>();
|
StringBuilder whereStatement=new StringBuilder("select * from t_simple_loan_order WHERE UUID=");
|
whereStatement.append("'"+orderId+"'");
|
|
if(null!=partyId) {
|
whereStatement.append(" AND PARTY_ID= ");
|
whereStatement.append("'"+partyId+"'");
|
whereStatement.append(";");
|
}
|
|
RowMapper<SimpleLoanOrder> rowMapper=new BeanPropertyRowMapper<>(SimpleLoanOrder.class);
|
List<SimpleLoanOrder> loanOrders = jdbcTemplate.query(whereStatement.toString(),rowMapper);
|
// List<SimpleLoanOrder> loanOrders=DBUtil.executeSelect(SimpleLoanOrder.class,whereStatement.toString(),paramList.toArray(new Object[paramList.size()]));
|
if(null==loanOrders || 0==loanOrders.size()) return null;
|
|
SimpleLoanOrder loanOrder=loanOrders.get(0);
|
String houseImgs=(String)loanOrder.getHouseImgs();
|
loanOrder.setHouseImgs(null==houseImgs?new String[0]:commaPattern.split(houseImgs));
|
Date endDay = new Date();
|
Long endTimel = endDay.getTime();
|
Long starTimel = loanOrder.getCreateTime().getTime();
|
Long num = endTimel - starTimel;
|
Long remainQuota = num/24/60/60/1000;
|
loanOrder.setTotalInterest(BigDecimal.ZERO);
|
loanOrder.setRemainQuota(0);
|
if(loanOrder.getState().intValue()==2||loanOrder.getState().intValue()==4) {
|
BigDecimal totalInterest = loanOrder.getDailyRate().multiply(new BigDecimal(remainQuota)).multiply(loanOrder.getQuota());
|
loanOrder.setTotalInterest(totalInterest);
|
loanOrder.setRemainQuota(loanOrder.getTerm() - remainQuota.intValue());
|
}
|
return loanOrder;
|
}
|
|
@Override
|
public List<SimpleLoanOrder> getUserOrders(Map<String,Object> paramMap) {
|
String state=(String)paramMap.get("state");
|
String symbol=(String)paramMap.get("symbol");
|
String partyId=(String)paramMap.get("partyId");
|
String repayment=(String)paramMap.get("repayment");
|
String endTimeStr=(String)paramMap.get("endTime");
|
String startTimeStr=(String)paramMap.get("startTime");
|
String lendingInstitution=(String)paramMap.get("lendingInstitution");
|
|
Integer status=(null==state || (state=state.trim()).isEmpty())?null:new Integer(state);
|
Timestamp startTime=(null==startTimeStr || (startTimeStr=startTimeStr.trim()).isEmpty())?null:Timestamp.valueOf(startTimeStr);
|
|
Timestamp endTime=null;
|
if(null!=startTime) {
|
endTime=(null==endTimeStr || (endTimeStr=endTimeStr.trim()).isEmpty())?null:Timestamp.valueOf(endTimeStr);
|
}
|
|
ArrayList<Object> paramList=new ArrayList<Object>();
|
StringBuilder whereStatement=new StringBuilder("select * from t_simple_loan_order WHERE PARTY_ID=");
|
whereStatement.append("'"+partyId+"'");
|
|
if(null!=status) {
|
whereStatement.append("AND STATE=");
|
whereStatement.append(status);
|
}
|
|
if(null!=symbol && !(symbol=symbol.trim()).isEmpty()) {
|
whereStatement.append("AND SYMBOL=");
|
whereStatement.append(symbol);
|
}
|
|
if(null!=repayment && !(repayment=repayment.trim()).isEmpty()) {
|
whereStatement.append("AND REPAYMENT=");
|
whereStatement.append(repayment);
|
}
|
|
if(null!=lendingInstitution && !(lendingInstitution=lendingInstitution.trim()).isEmpty()) {
|
whereStatement.append("AND LENDING_INSTITUTION=");
|
whereStatement.append(lendingInstitution);
|
}
|
|
if(null!=startTime) {
|
if(null==endTime) {
|
whereStatement.append("AND CREATE_TIME>= ");
|
whereStatement.append(startTime);
|
}else {
|
whereStatement.append("AND CREATE_TIME>= ");
|
whereStatement.append(startTime);
|
whereStatement.append("AND CREATE_TIME<=");
|
whereStatement.append(endTime);
|
whereStatement.append(";");
|
}
|
}
|
whereStatement.append(" ORDER BY CREATE_TIME DESC ");
|
// List<SimpleLoanOrder> simpleLoanOrderList = DBUtil.executeSelect(SimpleLoanOrder.class,whereStatement.toString(),paramList.toArray(new Object[paramList.size()]));
|
System.out.println("whereStatement.toString() = " + whereStatement.toString());
|
// List<SimpleLoanOrder> simpleLoanOrderList = jdbcTemplate.queryForList(whereStatement.toString(),SimpleLoanOrder.class);
|
RowMapper<SimpleLoanOrder> rowMapper=new BeanPropertyRowMapper<>(SimpleLoanOrder.class);
|
List<SimpleLoanOrder> simpleLoanOrderList = jdbcTemplate.query(whereStatement.toString(), rowMapper);
|
//DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
|
|
Date endDay = new Date();
|
Long endTimel = endDay.getTime();
|
for(SimpleLoanOrder simpleLoanOrder : simpleLoanOrderList) {
|
Long starTimel = simpleLoanOrder.getCreateTime().getTime();
|
Long num = endTimel - starTimel;
|
Long remainQuota = num/24/60/60/1000;
|
simpleLoanOrder.setTotalInterest(BigDecimal.ZERO);
|
simpleLoanOrder.setRemainQuota(0);
|
if(simpleLoanOrder.getState().intValue()==2||simpleLoanOrder.getState().intValue()==4) {
|
BigDecimal totalInterest = simpleLoanOrder.getDailyRate().multiply(new BigDecimal(remainQuota)).multiply(simpleLoanOrder.getQuota());
|
simpleLoanOrder.setTotalInterest(totalInterest);
|
simpleLoanOrder.setRemainQuota(simpleLoanOrder.getTerm() - remainQuota.intValue());
|
}
|
}
|
return simpleLoanOrderList;
|
}
|
|
public void setParamMap(HashMap<String,Object> params){
|
this.paramMap = params;
|
}
|
|
@Override
|
public Result getLoanParamList(int pageNum, int pageSize) {
|
try {
|
Page page = new Page(pageNum, pageSize);
|
page = loanParamMapper.getLoanParamList(page);
|
return Result.succeed(page);
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
}
|
return Result.failed("获取失败");
|
}
|
|
@Override
|
public Result saveLoanParam(LoanParam model) {
|
try {
|
if (model.getLending_institution() == null || model.getLending_institution().isEmpty()) {
|
model.setLending_institution("1");
|
}
|
if (model.getUuid() != 0) {
|
System.out.println(model);
|
if (loanParamMapper.updateById(model) > 0) {
|
return Result.succeed("修改成功");
|
}
|
} else {
|
if (loanParamMapper.insert(model) > 0) {
|
return Result.succeed("添加成功");
|
}
|
}
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
}
|
return Result.failed("操作失败");
|
}
|
|
@Override
|
public Result delLoanParam(String id) {
|
try {
|
if (loanParamMapper.deleteById(id) > 0) {
|
return Result.succeed("删除成功");
|
}
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
}
|
return Result.failed("操作失败");
|
}
|
|
|
}
|