修改dao和bean包以及实现利息计算两个算法

master
jyx 7 years ago
parent f47eede186
commit 471a98e6f2

@ -8,13 +8,10 @@ import java.util.List;
@Mapper
public interface productMapper {
@Select("select * from product where productNum = #{productNum}")
public Product selectProductByProductNum(String productNum);
@Select("select intrate from product where productNum = #{productNum}")
public Product selectProductIntrateByProductNum(String productNum);
public Product selectProductByProductNum(long productNum);
@Select("select * from product where productName = #{productName}")
public Product selectProductByProductName(String productName);
public Product selectProductByProductName(long productName);
@Select("select * from product")
public List<Product> select();

@ -3,6 +3,6 @@ package com.example.demo.Dao;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface transationMapping {
public interface transationMapper {
}

@ -0,0 +1,11 @@
package com.example.demo.Dao;
import com.example.demo.bean.UsageDate;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface usageDateMapper {
@Select("select * from usageDate where check = {#checkNum}")
public UsageDate selectUsageDateByCheckNum(long checkNum);
}

@ -1,7 +0,0 @@
package com.example.demo.Dao;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface usageDateMapping {
}

@ -18,6 +18,7 @@ public class Audit {
private short isSignContract;
private String productNum;
private int year;
private int equation;
public Audit(){};

@ -7,12 +7,13 @@ import javax.persistence.Entity;
@Getter
@Entity
public class UsageDate {
private String checkNum;
private String productNum;
private String userNum;
private long checkNum;
private long productNum;
private long userNum;
private String bankAccount;
private String bankNum;
private int bankNum;
private int year;
private float amount;
private String startTime;
private int equation;
}

@ -2,7 +2,9 @@ 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;
@ -10,16 +12,59 @@ import javax.annotation.PostConstruct;
public class CirculatorService {
@Autowired
private com.example.demo.Dao.usageDateMapper usageDateMapper;
private productMapper productMapper;
private auditMapper auditMapper;
@PostConstruct
public void init(){}
@Transactional //数据库与事物的一致性
public double countSumCirculator(String userNum,String productNum,float amount,int year){
Product product = productMapper.selectProductIntrateByProductNum(productNum);
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();
return intrate;
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;
}
}

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

@ -0,0 +1,38 @@
package com.example.demo.circulator.service.controller;
import com.example.demo.circulator.service.CirculatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
public class SumCirController {
//@Autowired
private CirculatorService circulatorService;
@GetMapping("/cir/sum")
public String SumCirculator(HttpServletRequest request, HttpServletResponse response){
long productNum = Long.parseLong(request.getParameter("productNum"));
double amount = Double.parseDouble(request.getParameter("amount"));
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);
break;
case 2:
sum_principal_and_intrate = circulatorService.Equal_principal_repaymentSumCirculator(productNum,amount,year);
break;
default:
System.out.println("not exit");
break;
}
request.setAttribute("sum",sum_principal_and_intrate);
return "/circulator";
}
}

@ -1,4 +0,0 @@
package com.example.demo.circulator.service.controller;
public class SumCirculatorController {
}
Loading…
Cancel
Save