修改circulator包内的sum类,以及传递消息验证

修改还款类,增加结果判断,验证消息传递
master
jyx 7 years ago
parent 37f910696e
commit 71202c898f

@ -8,7 +8,7 @@ import java.util.List;
@Mapper
public interface usageDateMapper {
@Select("select * from usagedate where transactionNum = #{transactionNum}")
@Select("select * from usagedate where checkNum = #{checkNum}")
public UsageDate selectUsageDateByCheckNum(long checkNum);
@Select("select * from usagedate")

@ -1,9 +1,9 @@
package com.example.demo.circulator.controller;
import com.example.demo.circulator.service.CirService;
import com.example.demo.circulator.service.EPAIR_CirService;
import com.example.demo.circulator.service.EPR_CirService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@ -12,25 +12,30 @@ import javax.servlet.http.HttpServletResponse;
@Controller
public class NextCirController {
//@Autowired
private CirService cirService;
@Autowired
private EPAIR_CirService epair_cirService;
@Autowired
private EPR_CirService epr_cirService;
@GetMapping("/cir/next")
public String nextCirculator(HttpServletRequest request,HttpServletResponse response){
long checkNum = (Long)request.getAttribute("checkNum");
int equation = (Integer)request.getAttribute("equation");
double next_principal_and_intrate = 0;
switch (equation){
case 1:
cirService = new EPAIR_CirService();
//cirService = new EPAIR_CirService();
next_principal_and_intrate = epair_cirService.NextCirculator(checkNum);
break;
case 2:
cirService = new EPR_CirService();
//cirService = new EPR_CirService();
next_principal_and_intrate = epr_cirService.NextCirculator(checkNum);
break;
default:
System.out.println("not exit");
break;
}
double next_principal_and_intrate = cirService.NextCirculator(checkNum);
//double next_principal_and_intrate = cirService.NextCirculator(checkNum);
if(next_principal_and_intrate>=0){
request.setAttribute("next",next_principal_and_intrate);
}else if(next_principal_and_intrate==-1){

@ -1,12 +1,13 @@
package com.example.demo.circulator.controller;
import com.example.demo.circulator.service.PayCirService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class PayCirController {
//@Autowired
@Autowired
PayCirService payCirService;
@PostMapping("/pay")
@ -16,7 +17,9 @@ public class PayCirController {
return "/还款成功!";
}else if(result==-2){
return"/未贷款该业务!";
}else
}else if(result==-3){
return "/无此业务";
}
return "/还款失败";
}

@ -3,16 +3,21 @@ package com.example.demo.circulator.controller;
import com.example.demo.circulator.service.CirService;
import com.example.demo.circulator.service.EPAIR_CirService;
import com.example.demo.circulator.service.EPR_CirService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
public class SumCirController {
//@Autowired
private CirService cirService;
@Autowired
//private CirService cirService;
private EPR_CirService epr_cirService;
@Autowired
private EPAIR_CirService epair_cirService;
@GetMapping("/cir/sum")
public String SumCirculator(HttpServletRequest request, HttpServletResponse response){
@ -21,18 +26,21 @@ public class SumCirController {
int year = Integer.parseInt(request.getParameter("year"));
int equation = Integer.parseInt(request.getParameter("equation"));
double sum_principal_and_intrate = 0;
switch (equation){
case 1:
cirService = new EPAIR_CirService();
//cirService = new EPAIR_CirService();
sum_principal_and_intrate = epair_cirService.SumCirculator(productNum,amount,year);
break;
case 2:
cirService = new EPR_CirService();
//cirService = new EPR_CirService();
sum_principal_and_intrate = epr_cirService.SumCirculator(productNum,amount,year);
break;
default:
System.out.println("not exit");
break;
}
double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year);
//double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year);
if(sum_principal_and_intrate>=0){
request.setAttribute("sum",sum_principal_and_intrate);
}else if(sum_principal_and_intrate==-3){

@ -1,10 +1,17 @@
package com.example.demo.circulator.service;
import com.example.demo.Dao.paymentMapper;
import com.example.demo.Dao.productMapper;
import com.example.demo.Dao.usageDateMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
public abstract class CirService {
@Service
public class CirService {
@PostConstruct
public void init(){}

@ -1,16 +1,21 @@
package com.example.demo.circulator.service;
import com.example.demo.Dao.paymentMapper;
import com.example.demo.Dao.productMapper;
import com.example.demo.Dao.usageDateMapper;
import com.example.demo.bean.Product;
import com.example.demo.bean.UsageDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class EPAIR_CirService extends CirService{
@Autowired
private usageDateMapper usageDateMapper;
@Autowired
private paymentMapper paymentMapper;
@Autowired
private productMapper productMapper;
@Transactional //数据库与事物的一致性

@ -7,12 +7,17 @@ import com.example.demo.bean.Product;
import com.example.demo.bean.Repayment;
import com.example.demo.bean.UsageDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class EPR_CirService extends CirService {
@Autowired
private usageDateMapper usageDateMapper;
@Autowired
private paymentMapper paymentMapper;
@Autowired
private productMapper productMapper;
@Transactional //数据库与事物的一致性
@ -44,9 +49,12 @@ public class EPR_CirService extends CirService {
return -1;
}
@Transactional
public double SumCirculator(long productNum,double amount,int year){
Product product = null;
try{
Product product = productMapper.selectProductByProductNum(productNum);
product = productMapper.selectProductByProductNum(productNum);
if(product==null)return -3;
float intrate = product.getIntrate();
intrate /= 12;
int month = year * 12;

@ -1,34 +1,52 @@
package com.example.demo.circulator.service;
import com.example.demo.Dao.paymentMapper;
import com.example.demo.Dao.productMapper;
import com.example.demo.Dao.transMapper;
import com.example.demo.Dao.usageDateMapper;
import com.example.demo.bean.Product;
import com.example.demo.bean.Repayment;
import com.example.demo.bean.Transaction;
import com.example.demo.bean.UsageDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class PayCirService {
@Autowired
private usageDateMapper usageDateMapper;
@Autowired
private paymentMapper paymentMapper;
@Autowired
private transMapper transMapper;
@Autowired
private productMapper productMapper;
public int payAmountCirculator(long checkNum,double pay){
public int pay_EPR_AmountCirculator(long checkNum,double pay) {
try {
Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum);
UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum);
if(usageDate==null)return -2;
double repamount = repayment.getRepAmount();
double repamount = 0;
long productNum = usageDate.getProductNum();
long userNum = usageDate.getUserNum();
int bankNum = usageDate.getBankNum();
double amount = usageDate.getAmount();
int year = usageDate.getYear();
if (repayment != null)
repamount = repayment.getRepAmount();
Product product = productMapper.selectProductByProductNum(productNum);
if (product == null)
return -3;
Transaction transaction = new Transaction(checkNum, userNum, bankNum, pay);
transMapper.addTransaction(transaction);
repamount = pay - amount/(year*12);
double intrate = product.getIntrate();
double rep_amount = repayment.getRepSum();
repamount = pay - (amount - repamount) * intrate;
repayment.setRepAmount(repamount);
repayment.setRepSum(pay);
repayment.setRepSum(pay + rep_amount);
if (repayment != null) {
paymentMapper.updateRepayment(repayment);
} else {
@ -38,9 +56,68 @@ public class PayCirService {
} catch (Exception e) {
e.printStackTrace();
} finally {
}
return 0;
}
public int pay_EPAIR_AmountCirculator(long checkNum,double pay){
try{
UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum);
int year = usageDate.getYear();
double amount = usageDate.getAmount();
long productNum = usageDate.getProductNum();
Product product = productMapper.selectProductByProductNum(productNum);
if(product==null)return -3;
float intrate = product.getIntrate();
double rep_amount = 0;
//double not_rep_amount = amount - rep_amount;
intrate /= 12;
int month = year*12;
double rep = Math.pow((1+intrate),month)/(Math.pow((1+intrate),month)-1);
double next_principal_and_interest = rep * intrate * amount;
long userNum = usageDate.getUserNum();
long bankNum = usageDate.getBankNum();
Transaction transaction = new Transaction(checkNum,userNum,bankNum,next_principal_and_interest);
transMapper.addTransaction(transaction);
Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum);
double repSum = next_principal_and_interest;
if(repayment!=null){
repSum += repayment.getRepSum();
repayment.setRepSum(repSum);
paymentMapper.updateRepayment(repayment);
}else{
paymentMapper.addRepayment(repayment);
}
return 1;
}catch(Exception e){
e.printStackTrace();
}finally {
}
return 0;
}
public int payAmountCirculator(long checkNum,double pay){
try{
UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum);
if(usageDate==null){return -2;}
int equation = usageDate.getEquation();
if(equation == 1){
return pay_EPAIR_AmountCirculator(checkNum,pay);
}else if(equation == 2){
return pay_EPR_AmountCirculator(checkNum,pay);
}
}catch (Exception e){
e.printStackTrace();
}finally {
}
return 0;
}
}

Loading…
Cancel
Save