修改两个算法的规范,上塑造型

master
jyx 7 years ago
parent f52c902506
commit 3add1fc53a

@ -1,70 +0,0 @@
package com.example.demo.circulator.service;
import com.example.demo.Dao.auditMapper;
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.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
public class CirculatorService {
@Autowired
private com.example.demo.Dao.usageDateMapper usageDateMapper;
private productMapper productMapper;
@PostConstruct
public void init(){}
@Transactional //数据库与事物的一致性
public double Equal_principal_and_interest_repaymentNextCirculator(long checkNum){
UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum);
int year = usageDate.getYear();
double amount = usageDate.getAmount();
long productNum = usageDate.getProductNum();
Product product = productMapper.selectProductByProductNum(productNum);
float intrate = product.getIntrate();
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;
return next_principal_and_interest;
}
public double Equal_principal_and_interest_repaymentSumCirculator(long productNum,double amount,int year){
Product product = productMapper.selectProductByProductNum(productNum);
float intrate = product.getIntrate();
double rep = Math.pow((1+intrate),year)/(Math.pow((1+intrate),year)-1);
double principal_and_interest = rep * intrate * amount * year;
return principal_and_interest;
}
public double Equal_principal_repaymentNextCirculator(long checkNum){
UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum);
int year = usageDate.getYear();
double amount = usageDate.getAmount();
long productNum = usageDate.getProductNum();
Product product = productMapper.selectProductByProductNum(productNum);
float intrate = product.getIntrate();
double rep_amount = 0;
intrate /= 12;
int month = year*12;
double next_principal_and_interest = amount/month + (amount - rep_amount) * intrate;
return next_principal_and_interest;
}
public double Equal_principal_repaymentSumCirculator(long productNum,double amount,int year){
Product product = productMapper.selectProductByProductNum(productNum);
float intrate = product.getIntrate();
intrate /= 12;
int month = year * 12;
double first_principal_and_interest = amount/month + amount*intrate;
double last_principal_and_interest = amount/month + amount*(1-(month-1)/month)*intrate;
double principal_and_interest = (first_principal_and_interest + last_principal_and_interest)*month/2;
return principal_and_interest;
}
}

@ -1,7 +1,8 @@
package com.example.demo.circulator.service.controller;
import com.example.demo.circulator.service.CirculatorService;
import org.springframework.beans.factory.annotation.Autowired;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@ -11,25 +12,24 @@ import javax.servlet.http.HttpServletResponse;
@Controller
public class NextCirController {
//@Autowired
private CirculatorService circulatorService;
private CirService 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:
next_principal_and_intrate = circulatorService.Equal_principal_and_interest_repaymentNextCirculator(checkNum);
cirService = new EPAIR_CirService();
break;
case 2:
next_principal_and_intrate = circulatorService.Equal_principal_repaymentNextCirculator(checkNum);
cirService = new EPR_CirService();
break;
default:
System.out.println("not exit");
break;
}
next_principal_and_intrate = circulatorService.Equal_principal_and_interest_repaymentNextCirculator(checkNum);
double next_principal_and_intrate = cirService.NextCirculator(checkNum);
request.setAttribute("next",next_principal_and_intrate);
return "/next";
}

@ -1,7 +1,8 @@
package com.example.demo.circulator.service.controller;
import com.example.demo.circulator.service.CirculatorService;
import org.springframework.beans.factory.annotation.Autowired;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@ -11,7 +12,7 @@ import javax.servlet.http.HttpServletResponse;
@Controller
public class SumCirController {
//@Autowired
private CirculatorService circulatorService;
private CirService cirService;
@GetMapping("/cir/sum")
public String SumCirculator(HttpServletRequest request, HttpServletResponse response){
@ -20,18 +21,18 @@ 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:
sum_principal_and_intrate = circulatorService.Equal_principal_and_interest_repaymentSumCirculator(productNum,amount,year);
cirService = new EPAIR_CirService();
break;
case 2:
sum_principal_and_intrate = circulatorService.Equal_principal_repaymentSumCirculator(productNum,amount,year);
cirService = new EPR_CirService();
break;
default:
System.out.println("not exit ");
break;
}
double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year);
request.setAttribute("sum",sum_principal_and_intrate);
return "/circulator";
}

Loading…
Cancel
Save