diff --git a/demo/src/test/java/com/example/demo/Dao/auditMapper.java b/demo/src/test/java/com/example/demo/Dao/auditMapper.java index 354e466..236d723 100644 --- a/demo/src/test/java/com/example/demo/Dao/auditMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/auditMapper.java @@ -12,7 +12,7 @@ import java.util.List; @Mapper public interface auditMapper { @Select("select * from audit where checkNum = #{checkNum}") - public Audit selectAudioByCheckNum(int checkNum); + public Audit selectAudioByCheckNum(long checkNum); @Select("select * from audit") public List select(); @@ -31,5 +31,5 @@ public interface auditMapper { public void updateAudit(Audit audits); @Delete("delete from audit where checkNum=#{checkNum}") - public void deleteAudit(int checkNum); + public void deleteAudit(long checkNum); } diff --git a/demo/src/test/java/com/example/demo/Dao/paymentMapper.java b/demo/src/test/java/com/example/demo/Dao/paymentMapper.java new file mode 100644 index 0000000..f851be9 --- /dev/null +++ b/demo/src/test/java/com/example/demo/Dao/paymentMapper.java @@ -0,0 +1,16 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Repayment; +import com.example.demo.bean.Transaction; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +@Mapper +public interface paymentMapper { + @Select("select * from repayment where checkNum ={#checkNum}") + public Repayment selectPepaymentBycheckNum(long checkNum); + + @Update("update repayment set repAmount = {#repAmount} ,repSum = {#repSum} where checkNum = {#checkNum}") + public void updateRepayment(Repayment repayment); +} diff --git a/demo/src/test/java/com/example/demo/Dao/productHistroyMapper.java b/demo/src/test/java/com/example/demo/Dao/productHistroyMapper.java index 0f2661f..b5247c4 100644 --- a/demo/src/test/java/com/example/demo/Dao/productHistroyMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/productHistroyMapper.java @@ -9,7 +9,7 @@ import java.util.List; @Mapper public interface productHistroyMapper { @Select("select * from producthistroy where productNum = #{productNum}") - public ProductHistroy selectAudioByCheckNum(int productNum); + public ProductHistroy selectAudioByCheckNum(long productNum); @Select("select * from producthistroy") public List select(); diff --git a/demo/src/test/java/com/example/demo/Dao/transMapper.java b/demo/src/test/java/com/example/demo/Dao/transMapper.java index 4aaf7a5..d0fdbc5 100644 --- a/demo/src/test/java/com/example/demo/Dao/transMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/transMapper.java @@ -8,22 +8,22 @@ import java.util.List; @Mapper public interface transMapper { @Select("select * from transaction where transactionNum = #{transactionNum}") - public Transaction selectAudioByCheckNum(int transactionNum); + public Transaction selectAudioByCheckNum(long transactionNum); @Select("select * from transaction") public List select(); @Insert("insert into transaction(transactionNum, payer, payee," + - " transactionTime, transactionAmount, note)" + + " transactionTime, transactionAmount, note,checkNum)" + " values (#{transactionNum},#{payer},#{payee},#{transactionTime},#{transactionAmount}," + - "#{note})") + "#{note},#{checkNum})") public void addTransaction(Transaction transactions); - @Update("update audio set transactionNum=#{transactionNum},payer=#{payer}" + + @Update("update audit set transactionNum=#{transactionNum},payer=#{payer}" + ",payee=#{payee},transactionTime=#{transactionTime},transactionAmount=#{transactionAmount}," + "note=#{note}") public void updateTransaction(Transaction transactions); - @Delete("delete from audio where transactionNum=#{transactionNum}") - public void deleteTransaction(int transactionNum); + @Delete("delete from audit where transactionNum=#{transactionNum}") + public void deleteTransaction(long transactionNum); } diff --git a/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java b/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java index b4edeb8..44cd957 100644 --- a/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/usageDateMapper.java @@ -9,7 +9,7 @@ import java.util.List; @Mapper public interface usageDateMapper { @Select("select * from usagedate where transactionNum = #{transactionNum}") - public UsageDate selectUsageDateByCheckNum(int checkNum); + public UsageDate selectUsageDateByCheckNum(long checkNum); @Select("select * from usagedate") public List select(); @@ -26,5 +26,5 @@ public interface usageDateMapper { public void updateUsageDate(UsageDate usageDate); @Delete("delete from usagedate where checkNum=#{checkNum}") - public void deleteUsageDate(int checkNum); + public void deleteUsageDate(long checkNum); } diff --git a/demo/src/test/java/com/example/demo/Dao/userMapper.java b/demo/src/test/java/com/example/demo/Dao/userMapper.java index 0399e77..1b96851 100644 --- a/demo/src/test/java/com/example/demo/Dao/userMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/userMapper.java @@ -8,7 +8,7 @@ import java.util.List; @Mapper public interface userMapper { @Select("select * from user where userNum = #{userNum}") - public User selectUserByuserNum(int userNum); + public User selectUserByuserNum(long userNum); @Select("select * from user") public List select(); @@ -26,5 +26,5 @@ public interface userMapper { public void updateUser(User users); @Delete("delete from user where userNum=#{userNum}") - public void deleteUser(int userNum); + public void deleteUser(long userNum); } 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 a6d1085..4017f89 100644 --- a/demo/src/test/java/com/example/demo/bean/Audit.java +++ b/demo/src/test/java/com/example/demo/bean/Audit.java @@ -12,15 +12,15 @@ import javax.persistence.*; public class Audit { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private int checkNum; - private int userNum; + private long checkNum; + private long userNum; private double amount; private String applyTime; private String bankAccount; - private int checkState; - private int contractNum; + private long checkState; + private long contractNum; private short isSignContract; - private int productNum; + private long productNum; private int year; private int equation; diff --git a/demo/src/test/java/com/example/demo/bean/Manager.java b/demo/src/test/java/com/example/demo/bean/Manager.java index 83f7476..39df85d 100644 --- a/demo/src/test/java/com/example/demo/bean/Manager.java +++ b/demo/src/test/java/com/example/demo/bean/Manager.java @@ -14,7 +14,7 @@ import javax.persistence.Id; public class Manager { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private int managerNum; + private long managerNum; private String managerName; private String managerPwd; private String managerRight; @@ -22,7 +22,7 @@ public class Manager { public Manager(){}; - public int getManagerNum() { + public long getManagerNum() { return managerNum; } diff --git a/demo/src/test/java/com/example/demo/bean/Product.java b/demo/src/test/java/com/example/demo/bean/Product.java index 754ac93..5f9df59 100644 --- a/demo/src/test/java/com/example/demo/bean/Product.java +++ b/demo/src/test/java/com/example/demo/bean/Product.java @@ -14,7 +14,7 @@ import javax.persistence.Id; public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private int productNum; + private long productNum; private String productName; private String category; private float intrate; @@ -68,7 +68,7 @@ public class Product { this.intrate = intrate; } - public int getProductNum() { + public long getProductNum() { return productNum; } @@ -76,7 +76,7 @@ public class Product { this.productName = productName; } - public void setProductNum(int productNum) { + public void setProductNum(long productNum) { this.productNum = productNum; } } diff --git a/demo/src/test/java/com/example/demo/bean/ProductHistroy.java b/demo/src/test/java/com/example/demo/bean/ProductHistroy.java index 95c1f24..95f7895 100644 --- a/demo/src/test/java/com/example/demo/bean/ProductHistroy.java +++ b/demo/src/test/java/com/example/demo/bean/ProductHistroy.java @@ -15,9 +15,9 @@ import javax.persistence.Id; public class ProductHistroy { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private int productNum; + private long productNum; private int bankNum; - private int managerNum; + private long managerNum; private String productName; private String category; private float intrate; @@ -28,19 +28,19 @@ public class ProductHistroy { public ProductHistroy(){}; - public int getManagerNum() { + public long getManagerNum() { return managerNum; } - public void setManagerNum(int managerNum) { + public void setManagerNum(long managerNum) { this.managerNum = managerNum; } - public int getProductNum() { + public long getProductNum() { return productNum; } - public void setProductNum(int productNum) { + public void setProductNum(long productNum) { this.productNum = productNum; } diff --git a/demo/src/test/java/com/example/demo/bean/Repayment.java b/demo/src/test/java/com/example/demo/bean/Repayment.java new file mode 100644 index 0000000..2b8461b --- /dev/null +++ b/demo/src/test/java/com/example/demo/bean/Repayment.java @@ -0,0 +1,15 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; + +@Getter +@Setter +@Entity +public class Repayment { + private long checkNum; + private double repAmount; + private double repSum; +} diff --git a/demo/src/test/java/com/example/demo/bean/Transaction.java b/demo/src/test/java/com/example/demo/bean/Transaction.java index c6291cf..9f8b183 100644 --- a/demo/src/test/java/com/example/demo/bean/Transaction.java +++ b/demo/src/test/java/com/example/demo/bean/Transaction.java @@ -14,12 +14,19 @@ import javax.persistence.Id; public class Transaction { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private int transactionNum; - private String payer; - private String payee; + private long transactionNum; + private long payer; + private long payee; private float transactionTime; private float transactionAmount; private String note; + private long checkNum; public Transaction(){}; + public Transaction(long checkNum,long payer,long payee,double transationAmount){ + this.checkNum=checkNum; + this.payer = payer; + this.payee = payee; + this.transactionAmount=transactionNum; + } } 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 76d44c2..74a67c1 100644 --- a/demo/src/test/java/com/example/demo/bean/UsageDate.java +++ b/demo/src/test/java/com/example/demo/bean/UsageDate.java @@ -1,10 +1,12 @@ package com.example.demo.bean; import lombok.Getter; +import lombok.Setter; import javax.persistence.Entity; @Getter +@Setter @Entity public class UsageDate { private long checkNum; diff --git a/demo/src/test/java/com/example/demo/bean/User.java b/demo/src/test/java/com/example/demo/bean/User.java index 964c3a6..3390771 100644 --- a/demo/src/test/java/com/example/demo/bean/User.java +++ b/demo/src/test/java/com/example/demo/bean/User.java @@ -14,7 +14,7 @@ import javax.persistence.Id; public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private int userNum; + private long userNum; private String userName; private String userPwd; private String userRight; @@ -22,7 +22,7 @@ public class User { private String idNum; private String telephoneNum; private String address; - private int isIdentify; + private String isIdentify; private String registerTime; public User(){}; 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 index e93758b..8c73db5 100644 --- 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 @@ -16,25 +16,42 @@ public class EPAIR_CirService extends CirService{ @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; + try{ + 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; + + 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; + return next_principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; } 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; + try{ + 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; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; } } 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 index e47223e..66fadf9 100644 --- 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 @@ -1,8 +1,10 @@ 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.Repayment; import com.example.demo.bean.UsageDate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -12,32 +14,48 @@ import javax.annotation.PostConstruct; public class EPR_CirService extends CirService{ @Autowired private usageDateMapper usageDateMapper; + private paymentMapper paymentMapper; 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; + try{ + UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum); + Repayment repayment = paymentMapper.selectPepaymentBycheckNum(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 = repayment.getRepAmount(); + intrate /= 12; + int month = year*12; + double next_principal_and_interest = amount/month + (amount - rep_amount) * intrate; + return next_principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; } 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; + try{ + 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; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; } } diff --git a/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java b/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java new file mode 100644 index 0000000..0a7ec2b --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java @@ -0,0 +1,40 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.paymentMapper; +import com.example.demo.Dao.transMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Repayment; +import com.example.demo.bean.Transaction; +import com.example.demo.bean.UsageDate; + +public class PayCirService { + private usageDateMapper usageDateMapper; + private paymentMapper paymentMapper; + private transMapper transMapper; + + public int payAmountCirculator(long checkNum,double pay){ + try{ + Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum); + UsageDate usageDate= usageDateMapper.selectUsageDateByCheckNum(checkNum); + double rep_amount = repayment.getRepAmount(); + long userNum = usageDate.getUserNum(); + int bankNum = usageDate.getBankNum(); + double amount = usageDate.getAmount(); + int year = usageDate.getYear(); + + Transaction transaction = new Transaction(checkNum,userNum,bankNum,pay); + transMapper.addTransaction(transaction); + + rep_amount = pay - amount/(year*12); + repayment.setRepAmount(rep_amount); + repayment.setRepSum(pay); + paymentMapper.updateRepayment(repayment); + return 1; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return 0; + } +} 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 7b1e666..ae85770 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 @@ -30,7 +30,12 @@ public class NextCirController { break; } double next_principal_and_intrate = cirService.NextCirculator(checkNum); - request.setAttribute("next",next_principal_and_intrate); + if(next_principal_and_intrate>=0){ + request.setAttribute("next",next_principal_and_intrate); + }else{ + return "/计算失败"; + } + return "/next"; } } diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/PayCirController.java b/demo/src/test/java/com/example/demo/circulator/service/controller/PayCirController.java new file mode 100644 index 0000000..b87d7da --- /dev/null +++ b/demo/src/test/java/com/example/demo/circulator/service/controller/PayCirController.java @@ -0,0 +1,21 @@ +package com.example.demo.circulator.service.controller; + +import com.example.demo.circulator.service.PayCirService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; + +@Controller +public class PayCirController { + PayCirService payCirService; + + @PostMapping("/pay") + public String payAmountCir(long checkNum,double pay){ + int result = payCirService.payAmountCirculator(checkNum,pay); + if(result==1){ + return "/还款成功"; + }else{ + return"/还款失败"; + } + + } +} 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 9b445ce..1de02c4 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 @@ -33,7 +33,12 @@ public class SumCirController { break; } double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year); - request.setAttribute("sum",sum_principal_and_intrate); + if(sum_principal_and_intrate>=0){ + request.setAttribute("sum",sum_principal_and_intrate); + }else{ + return "/计算失败"; + } + return "/circulator"; } }