diff --git a/demo/src/test/java/com/example/demo/circulator/service/CirService.java b/demo/src/test/java/com/example/demo/circulator/service/CirService.java new file mode 100644 index 0000000..c3be9ef --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/CirService.java @@ -0,0 +1,16 @@ +package com.example.demo.circulator.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; + +public abstract class CirService { + @PostConstruct + public void init(){} + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){return 0;} + public double SumCirculator(long productNum,double amount,int year){return 0;} + +} diff --git a/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java b/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java new file mode 100644 index 0000000..e93758b --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java @@ -0,0 +1,40 @@ +package com.example.demo.circulator.service; + +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 EPAIR_CirService extends CirService{ + @Autowired + private usageDateMapper usageDateMapper; + private productMapper productMapper; + + @Transactional //数据库与事物的一致性 + public double NextCirculator(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 SumCirculator(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; + } +} diff --git a/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java b/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java new file mode 100644 index 0000000..e47223e --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java @@ -0,0 +1,43 @@ +package com.example.demo.circulator.service; + +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 EPR_CirService extends CirService{ + @Autowired + private usageDateMapper usageDateMapper; + private productMapper productMapper; + + @Transactional //数据库与事物的一致性 + public double NextCirculator(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 SumCirculator(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; + } +} 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 index 91dd649..7b1e666 100644 --- 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 @@ -26,7 +26,7 @@ public class NextCirController { cirService = new EPR_CirService(); break; default: - System.out.println("not exit"); + System.out.println("not exit!!"); break; } double next_principal_and_intrate = cirService.NextCirculator(checkNum); 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 index 64ac7d0..9b445ce 100644 --- 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 @@ -29,7 +29,7 @@ public class SumCirController { cirService = new EPR_CirService(); break; default: - System.out.println("not exit "); + System.out.println("not exit!!"); break; } double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year);