diff --git a/demo/src/test/java/com/example/demo/Dao/productMapper.java b/demo/src/test/java/com/example/demo/Dao/productMapper.java index 6a5faa8..800151e 100644 --- a/demo/src/test/java/com/example/demo/Dao/productMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/productMapper.java @@ -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 select(); diff --git a/demo/src/test/java/com/example/demo/Dao/transationMapping.java b/demo/src/test/java/com/example/demo/Dao/transationMapper.java similarity index 69% rename from demo/src/test/java/com/example/demo/Dao/transationMapping.java rename to demo/src/test/java/com/example/demo/Dao/transationMapper.java index 67128f7..1d82127 100644 --- a/demo/src/test/java/com/example/demo/Dao/transationMapping.java +++ b/demo/src/test/java/com/example/demo/Dao/transationMapper.java @@ -3,6 +3,6 @@ package com.example.demo.Dao; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface transationMapping { +public interface transationMapper { } \ No newline at end of file diff --git a/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java b/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java new file mode 100644 index 0000000..ff81952 --- /dev/null +++ b/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java @@ -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); +} diff --git a/demo/src/test/java/com/example/demo/Dao/usageDateMapping.java b/demo/src/test/java/com/example/demo/Dao/usageDateMapping.java deleted file mode 100644 index 7867168..0000000 --- a/demo/src/test/java/com/example/demo/Dao/usageDateMapping.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.demo.Dao; - -import org.apache.ibatis.annotations.Mapper; -@Mapper -public interface usageDateMapping { - -} diff --git a/demo/src/test/java/com/example/demo/bean/Audit.java b/demo/src/test/java/com/example/demo/bean/Audit.java index a9035e7..3b9c377 100644 --- a/demo/src/test/java/com/example/demo/bean/Audit.java +++ b/demo/src/test/java/com/example/demo/bean/Audit.java @@ -18,6 +18,7 @@ public class Audit { private short isSignContract; private String productNum; private int year; + private int equation; public Audit(){}; diff --git a/demo/src/test/java/com/example/demo/bean/UsageDate.java b/demo/src/test/java/com/example/demo/bean/UsageDate.java index 0b6d9a3..953b891 100644 --- a/demo/src/test/java/com/example/demo/bean/UsageDate.java +++ b/demo/src/test/java/com/example/demo/bean/UsageDate.java @@ -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; } diff --git a/demo/src/test/java/com/example/demo/circulator/service/CirculatorService.java b/demo/src/test/java/com/example/demo/circulator/service/CirculatorService.java index 03eabe9..97beeee 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/CirculatorService.java +++ b/demo/src/test/java/com/example/demo/circulator/service/CirculatorService.java @@ -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; } } diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/NextCirController.java b/demo/src/test/java/com/example/demo/circulator/service/controller/NextCirController.java new file mode 100644 index 0000000..4fff0f3 --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/controller/NextCirController.java @@ -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"; + } +} diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirController.java b/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirController.java new file mode 100644 index 0000000..0645151 --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirController.java @@ -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"; + } +} diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirculatorController.java b/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirculatorController.java deleted file mode 100644 index 13d4485..0000000 --- a/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirculatorController.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.demo.circulator.service.controller; - -public class SumCirculatorController { -}