diff --git a/src/main/java/com/sztzjy/money_management/controller/CaseController.java b/src/main/java/com/sztzjy/money_management/controller/CaseController.java
index 741ad04..f2ff161 100644
--- a/src/main/java/com/sztzjy/money_management/controller/CaseController.java
+++ b/src/main/java/com/sztzjy/money_management/controller/CaseController.java
@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -46,7 +47,7 @@ public class CaseController {
     private ComputeService computeService;
 
     @PostMapping("/insertCase")
-    @ApiOperation("新增/编辑案例,老师和管理员新增根据caseInfo中的publish区分都是题目答案,学生端新增传isAnswer为学生答案+userId")
+    @ApiOperation("新增/编辑案例,学生端新增传isAnswer为学生答案+userId")
     private ResultEntity<HttpStatus> insertCase(@ApiParam("左侧caseInfo对象") @RequestParam(required = false) String caseInfo,  //todo 传json字符串
                                                 @ApiParam("右侧考核点设置的参数对象") @RequestParam String json,
                                                 @ApiParam("老师或管理员操作传master,学生操作传stu") @RequestParam String operator,
@@ -56,7 +57,7 @@ public class CaseController {
 
 
     @PostMapping("/insertComprehensivePlanCase")
-    @ApiOperation("新增/编辑综合规划案例")
+    @ApiOperation("老师端或管理员/新增编辑综合规划案例")
     private ResultEntity<HttpStatus> insertComprehensivePlanCase(@ApiParam("主表caseInfo必传") @RequestBody StuCaseDto stuCaseDto) {
         return caseService.insertComprehensivePlanCase(stuCaseDto);
     }
@@ -64,8 +65,9 @@ public class CaseController {
 
     @PostMapping("/getInsurancePro")
     @ApiOperation("查询保险规划产品名称")
-    private ResultEntity<List<String>> getInsurancePro(@RequestParam String type) {
-        return new ResultEntity<List<String>>(insuranceProMapper.getInsurancePro(type));
+    @AnonymousAccess
+    private ResultEntity<List<Map<String, String>>> getInsurancePro(@RequestParam String type) {
+        return new ResultEntity<>(insuranceProMapper.getInsurancePro(type));
     }
 
     @PostMapping("/insertOrUpdateInvestmentPlan")
@@ -217,8 +219,7 @@ public class CaseController {
     @ApiOperation("年缴保费计算")
     @AnonymousAccess
     private ResultEntity<BigDecimal> getInsuranceExpense(@ApiParam("需要年龄,性别,保险年份,缴费方式,保险金额,InsuranceProId") @RequestBody CaseInvestmentPlanInsuranceProductInfo productInfo) {
-        BigDecimal AnnualPremium = computeService.getAnnualPremium(productInfo);
-        return new ResultEntity<BigDecimal>(AnnualPremium);
+        return computeService.getAnnualPremium(productInfo);
     }
 
 
diff --git a/src/main/java/com/sztzjy/money_management/mapper/InsuranceProMapper.java b/src/main/java/com/sztzjy/money_management/mapper/InsuranceProMapper.java
index c768ef2..20377e5 100644
--- a/src/main/java/com/sztzjy/money_management/mapper/InsuranceProMapper.java
+++ b/src/main/java/com/sztzjy/money_management/mapper/InsuranceProMapper.java
@@ -3,14 +3,13 @@ package com.sztzjy.money_management.mapper;
 import com.sztzjy.money_management.entity.InsurancePro;
 import com.sztzjy.money_management.entity.InsuranceProExample;
 import com.sztzjy.money_management.entity.InsuranceProWithBLOBs;
-
-import java.util.List;
-
-import com.sztzjy.money_management.util.ResultEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import java.util.List;
+import java.util.Map;
+
 @Mapper
 public interface InsuranceProMapper {
     long countByExample(InsuranceProExample example);
@@ -41,6 +40,6 @@ public interface InsuranceProMapper {
 
     int updateByPrimaryKey(InsurancePro record);
 
-    @Select("select  name from insurance_pro where kind=#{type}")
-    List<String> getInsurancePro(@Param("type") String type);
+    @Select("select insurance_pro_id,name from insurance_pro where kind=#{type}")
+    List<Map<String, String>> getInsurancePro(@Param("type") String type);
 }
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/money_management/service/ComputeService.java b/src/main/java/com/sztzjy/money_management/service/ComputeService.java
index 96a7ab5..1d1405c 100644
--- a/src/main/java/com/sztzjy/money_management/service/ComputeService.java
+++ b/src/main/java/com/sztzjy/money_management/service/ComputeService.java
@@ -1,6 +1,7 @@
 package com.sztzjy.money_management.service;
 
 import com.sztzjy.money_management.entity.CaseInvestmentPlanInsuranceProductInfo;
+import com.sztzjy.money_management.util.ResultEntity;
 
 import java.math.BigDecimal;
 
@@ -9,6 +10,6 @@ import java.math.BigDecimal;
  * @Date 2024/10/9
  */
 public interface ComputeService {
-    BigDecimal getAnnualPremium(CaseInvestmentPlanInsuranceProductInfo productInfo);
+    ResultEntity<BigDecimal> getAnnualPremium(CaseInvestmentPlanInsuranceProductInfo productInfo);
 
 }
diff --git a/src/main/java/com/sztzjy/money_management/service/impl/CaseServiceImpl.java b/src/main/java/com/sztzjy/money_management/service/impl/CaseServiceImpl.java
index 2c0e65b..6512933 100644
--- a/src/main/java/com/sztzjy/money_management/service/impl/CaseServiceImpl.java
+++ b/src/main/java/com/sztzjy/money_management/service/impl/CaseServiceImpl.java
@@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -495,7 +494,6 @@ public class CaseServiceImpl implements CaseService {
 //    }
 
 
-
     @Override
     public ResultEntity<HttpStatus> insertCase(String caseInfo, String json, String operator, String type) {
         Gson gson = new Gson();
@@ -935,6 +933,15 @@ public class CaseServiceImpl implements CaseService {
                 ResultEntity<HttpStatus> result = getHttpStatusResultEntity(caseInvestmentPlanDto.getCaseId(), caseInvestmentPlanDto.getUserId());
                 if (result != null) return result;
 
+                CaseInvestmentPlan investmentPlan = caseInvestmentPlanDto.getInvestmentPlan();
+                String investmentPlanId = IdUtil.randomUUID();
+                if (StringUtils.isBlank(investmentPlan.getCaseInvestmentPlanId())) {
+                    investmentPlan.setCaseInvestmentPlanId(investmentPlanId);
+                    investmentPlanMapper.insert(investmentPlan);
+                } else {
+                    investmentPlanMapper.updateByPrimaryKey(investmentPlan);
+                }
+
                 //投资规划-产品选择表和其余五张表是一对多关系
                 if (caseInvestmentPlanDto.getCaseInvestmentPlanSelectDtos() != null
                         && !caseInvestmentPlanDto.getCaseInvestmentPlanSelectDtos().isEmpty()) {
@@ -943,12 +950,11 @@ public class CaseServiceImpl implements CaseService {
                     for (CaseInvestmentPlanSelectDto investmentPlanSelect : investmentPlanSelects) {
 
                         CaseInvestmentPlanSelect caseInvestmentPlanSelect = investmentPlanSelect.getCaseInvestmentPlanSelect(); //产品选择表
-
+                        String selectId = IdUtil.randomUUID();
                         //操作产品选择表
-                        //id为空则新增  表不可能为null
                         if (caseInvestmentPlanSelect != null && StringUtils.isBlank(caseInvestmentPlanSelect.getProductSelectId())) {
                             caseInvestmentPlanSelect.setProductSelectId(IdUtil.randomUUID());
-                            //todo caseid前端能否传过来
+                            caseInvestmentPlanSelect.setCaseInvestmentPlanId(investmentPlanId);
                             caseInvestmentPlanSelectMapper.insert(caseInvestmentPlanSelect);
                         } else {
                             caseInvestmentPlanSelectMapper.updateByPrimaryKeySelective(caseInvestmentPlanSelect);
@@ -962,6 +968,8 @@ public class CaseServiceImpl implements CaseService {
                                 //id为空则新增
                                 if (StringUtils.isBlank(investmentPlanFundProductInfo.getFundProductinfoId())) {
                                     investmentPlanFundProductInfo.setFundProductinfoId(IdUtil.randomUUID());
+                                    investmentPlanFundProductInfo.setProductSelectId(selectId);
+                                    investmentPlanFundProductInfo.setAddTime(new Date());
                                     investmentPlanFundProductInfoMapper.insert(investmentPlanFundProductInfo);
                                 } else {
                                     investmentPlanFundProductInfoMapper.updateByPrimaryKeySelective(investmentPlanFundProductInfo);
@@ -976,6 +984,8 @@ public class CaseServiceImpl implements CaseService {
                                 //id为空则新增
                                 if (StringUtils.isBlank(investmentPlanBankProductInfo.getBankProductinfoId())) {
                                     investmentPlanBankProductInfo.setBankProductinfoId(IdUtil.randomUUID());
+                                    investmentPlanBankProductInfo.setProductSelectId(selectId);
+                                    investmentPlanBankProductInfo.setAddTime(new Date());
                                     investmentPlanBankProductInfoMapper.insert(investmentPlanBankProductInfo);
                                 } else {
                                     investmentPlanBankProductInfoMapper.updateByPrimaryKeySelective(investmentPlanBankProductInfo);
@@ -991,6 +1001,8 @@ public class CaseServiceImpl implements CaseService {
                                 //id为空则新增
                                 if (StringUtils.isBlank(investmentPlanInsuranceProductInfo.getInsuranceProductinfoId())) {
                                     investmentPlanInsuranceProductInfo.setInsuranceProductinfoId(IdUtil.randomUUID());
+                                    investmentPlanInsuranceProductInfo.setProductSelectId(selectId);
+                                    investmentPlanInsuranceProductInfo.setAddTime(new Date());
                                     investmentPlanInsuranceProductInfoMapper.insert(investmentPlanInsuranceProductInfo);
                                 } else {
                                     investmentPlanInsuranceProductInfoMapper.updateByPrimaryKeySelective(investmentPlanInsuranceProductInfo);
@@ -1005,6 +1017,8 @@ public class CaseServiceImpl implements CaseService {
                                 //id为空则新增
                                 if (StringUtils.isBlank(investmentPlanP2PProductInfo.getP2pProductinfoId())) {
                                     investmentPlanP2PProductInfo.setP2pProductinfoId(IdUtil.randomUUID());
+                                    investmentPlanP2PProductInfo.setProductSelectId(selectId);
+                                    investmentPlanP2PProductInfo.setAddTime(new Date());
                                     investmentPlanP2PProductInfoMapper.insert(investmentPlanP2PProductInfo);
                                 } else {
                                     investmentPlanP2PProductInfoMapper.updateByPrimaryKeySelective(investmentPlanP2PProductInfo);
@@ -1020,6 +1034,8 @@ public class CaseServiceImpl implements CaseService {
                                 //id为空则新增
                                 if (StringUtils.isBlank(investmentPlanRealGoldProductInfo.getRealGoldProductId())) {
                                     investmentPlanRealGoldProductInfo.setRealGoldProductId(IdUtil.randomUUID());
+                                    investmentPlanRealGoldProductInfo.setProductSelectId(selectId);
+                                    investmentPlanRealGoldProductInfo.setAddTime(new Date());
                                     investmentPlanRealGoldProductInfoMapper.insert(investmentPlanRealGoldProductInfo);
                                 } else {
                                     investmentPlanRealGoldProductInfoMapper.updateByPrimaryKeySelective(investmentPlanRealGoldProductInfo);
@@ -1269,21 +1285,154 @@ public class CaseServiceImpl implements CaseService {
                     wrongCount = getCaseInsurancePlanWrongCount(wrongCount, stuData);
                 }
 
+//                if (type.equals("投资规划")) {
+//                    CaseInvestmentPlan stuInvestmentPlan = gson.fromJson(json, CaseInvestmentPlan.class);
+//                    CaseInvestmentPlanExample caseInvestmentPlanExample = new CaseInvestmentPlanExample();
+//                    caseInvestmentPlanExample.createCriteria().andIsAnswerEqualTo("学生答案").andUserIdEqualTo(stuInvestmentPlan.getUserId()).andCaseIdEqualTo(stuInvestmentPlan.getCaseId());
+//                    List<CaseInvestmentPlan> caseInvestmentPlans = investmentPlanMapper.selectByExampleWithBLOBs(caseInvestmentPlanExample);
+//                    if (!caseInvestmentPlans.isEmpty()) {
+//                        for (CaseInvestmentPlan caseInvestmentPlan : caseInvestmentPlans) {
+//                            investmentPlanMapper.deleteByPrimaryKey(caseInvestmentPlan.getCaseInvestmentPlanId());
+//                        }
+//                    }
+//                    stuInvestmentPlan.setCaseInvestmentPlanId(IdUtil.randomUUID());
+//                    investmentPlanMapper.insert(stuInvestmentPlan);
+//
+//                    //比较正确答案
+//                    wrongCount = getCaseInvestmentPlan(wrongCount, stuInvestmentPlan);
+//                }
+
+
+                //先查询一次
                 if (type.equals("投资规划")) {
-                    CaseInvestmentPlan stuInvestmentPlan = gson.fromJson(json, CaseInvestmentPlan.class);
-                    CaseInvestmentPlanExample caseInvestmentPlanExample = new CaseInvestmentPlanExample();
-                    caseInvestmentPlanExample.createCriteria().andIsAnswerEqualTo("学生答案").andUserIdEqualTo(stuInvestmentPlan.getUserId()).andCaseIdEqualTo(stuInvestmentPlan.getCaseId());
-                    List<CaseInvestmentPlan> caseInvestmentPlans = investmentPlanMapper.selectByExampleWithBLOBs(caseInvestmentPlanExample);
-                    if (!caseInvestmentPlans.isEmpty()) {
-                        for (CaseInvestmentPlan caseInvestmentPlan : caseInvestmentPlans) {
-                            investmentPlanMapper.deleteByPrimaryKey(caseInvestmentPlan.getCaseInvestmentPlanId());
+                    CaseInvestmentPlanDto caseInvestmentPlanDto = gson.fromJson(json, CaseInvestmentPlanDto.class);
+
+                    CaseInvestmentPlan investmentPlan = caseInvestmentPlanDto.getInvestmentPlan();
+
+                    //投资规划-产品选择表和其余五张表是一对多关系
+                    if (caseInvestmentPlanDto.getCaseInvestmentPlanSelectDtos() != null
+                            && !caseInvestmentPlanDto.getCaseInvestmentPlanSelectDtos().isEmpty()) {
+                        List<CaseInvestmentPlanSelectDto> investmentPlanSelects = caseInvestmentPlanDto.getCaseInvestmentPlanSelectDtos();
+
+                        for (CaseInvestmentPlanSelectDto investmentPlanSelect : investmentPlanSelects) {
+
+                            CaseInvestmentPlanSelect caseInvestmentPlanSelect = investmentPlanSelect.getCaseInvestmentPlanSelect(); //产品选择表
+                            String selectId = IdUtil.randomUUID();
+
+                            //提交功能 主表必定不为空,把老数据查出来删掉
+                            CaseInvestmentPlanExample example = new CaseInvestmentPlanExample();
+                            example.createCriteria().andCaseIdEqualTo(investmentPlan.getCaseId()).andUserIdEqualTo(investmentPlan.getUserId()).andIsAnswerEqualTo("学生答案");
+                            List<CaseInvestmentPlan> caseInvestmentPlans = investmentPlanMapper.selectByExampleWithBLOBs(example);
+
+                            //删除老数据
+                            if (caseInvestmentPlans != null) {
+                                CaseInvestmentPlan caseInvestmentPlan = caseInvestmentPlans.get(0);
+
+                                CaseInvestmentPlanSelectExample planSelectExample = new CaseInvestmentPlanSelectExample();
+                                planSelectExample.createCriteria().andCaseInvestmentPlanIdEqualTo(caseInvestmentPlan.getCaseInvestmentPlanId());
+                                List<CaseInvestmentPlanSelect> investmentPlanSelectsDataList = caseInvestmentPlanSelectMapper.selectByExampleWithBLOBs(planSelectExample);
+                                if (investmentPlanSelectsDataList != null) {
+                                    CaseInvestmentPlanSelect investmentPlanSelectsData = investmentPlanSelectsDataList.get(0);
+                                    String productSelectId = investmentPlanSelectsData.getProductSelectId();
+                                    caseInvestmentPlanSelectMapper.deleteByPrimaryKey(productSelectId);
+                                    caseInvestmentPlanSelectMapper.deleteByPrimaryKey(productSelectId);
+                                    investmentPlanFundProductInfoMapper.deleteByPrimaryKey(productSelectId);
+                                    investmentPlanBankProductInfoMapper.deleteByPrimaryKey(productSelectId);
+                                    investmentPlanInsuranceProductInfoMapper.deleteByPrimaryKey(productSelectId);
+                                    investmentPlanP2PProductInfoMapper.deleteByPrimaryKey(productSelectId);
+                                    investmentPlanRealGoldProductInfoMapper.deleteByPrimaryKey(productSelectId);
+                                }
+                                investmentPlanMapper.deleteByPrimaryKey(caseInvestmentPlan.getCaseInvestmentPlanId());
+                            }
+
+                            //新增主表
+                            String newCaseInvestmentPlanId = IdUtil.randomUUID();
+                            investmentPlan.setCaseInvestmentPlanId(newCaseInvestmentPlanId);
+                            investmentPlanMapper.insert(investmentPlan);
+
+                            //下面都为新增操作
+                            if (caseInvestmentPlanSelect != null) {
+                                caseInvestmentPlanSelect.setProductSelectId(selectId);
+                                caseInvestmentPlanSelect.setCaseInvestmentPlanId(newCaseInvestmentPlanId);
+                                caseInvestmentPlanSelectMapper.insert(caseInvestmentPlanSelect);
+                            }
+
+                            //投资规划-基金产品信息表
+                            if (investmentPlanSelect.getInvestmentPlanFundProductInfos() != null
+                                    && !investmentPlanSelect.getInvestmentPlanFundProductInfos().isEmpty()) {
+                                List<CaseInvestmentPlanFundProductInfo> investmentPlanFundProductInfos = investmentPlanSelect.getInvestmentPlanFundProductInfos();
+
+                                for (CaseInvestmentPlanFundProductInfo investmentPlanFundProductInfo : investmentPlanFundProductInfos) {
+                                    if (StringUtils.isBlank(investmentPlanFundProductInfo.getFundProductinfoId())) {
+                                        investmentPlanFundProductInfo.setFundProductinfoId(IdUtil.randomUUID());
+                                        investmentPlanFundProductInfo.setProductSelectId(selectId);
+                                        investmentPlanFundProductInfo.setAddTime(new Date());
+                                        investmentPlanFundProductInfoMapper.insert(investmentPlanFundProductInfo);
+                                    }
+                                }
+                            }
+                            //投资规划-银行储蓄信息表
+                            if (investmentPlanSelect.getInvestmentPlanBankProductInfos() != null
+                                    && !investmentPlanSelect.getInvestmentPlanBankProductInfos().isEmpty()) {
+                                List<CaseInvestmentPlanBankProductInfo> investmentPlanBankProductInfos = investmentPlanSelect.getInvestmentPlanBankProductInfos(); //投资规划-银行储蓄信息表
+                                for (CaseInvestmentPlanBankProductInfo investmentPlanBankProductInfo : investmentPlanBankProductInfos) {
+                                    //id为空则新增
+                                    if (StringUtils.isBlank(investmentPlanBankProductInfo.getBankProductinfoId())) {
+                                        investmentPlanBankProductInfo.setBankProductinfoId(IdUtil.randomUUID());
+                                        investmentPlanBankProductInfo.setProductSelectId(selectId);
+                                        investmentPlanBankProductInfo.setAddTime(new Date());
+                                        investmentPlanBankProductInfoMapper.insert(investmentPlanBankProductInfo);
+                                    }
+                                }
+                            }
+                            //投资规划-保险产品信息表
+                            if (investmentPlanSelect.getInvestmentPlanInsuranceProductInfos() != null
+                                    && !investmentPlanSelect.getInvestmentPlanInsuranceProductInfos().isEmpty()) {
+                                List<CaseInvestmentPlanInsuranceProductInfo> investmentPlanInsuranceProductInfos = investmentPlanSelect.getInvestmentPlanInsuranceProductInfos();//投资规划-保险产品信息表
+
+                                for (CaseInvestmentPlanInsuranceProductInfo investmentPlanInsuranceProductInfo : investmentPlanInsuranceProductInfos) {
+                                    //id为空则新增
+                                    if (StringUtils.isBlank(investmentPlanInsuranceProductInfo.getInsuranceProductinfoId())) {
+                                        investmentPlanInsuranceProductInfo.setInsuranceProductinfoId(IdUtil.randomUUID());
+                                        investmentPlanInsuranceProductInfo.setProductSelectId(selectId);
+                                        investmentPlanInsuranceProductInfo.setAddTime(new Date());
+                                        investmentPlanInsuranceProductInfoMapper.insert(investmentPlanInsuranceProductInfo);
+                                    }
+                                }
+                            }
+                            //投资规划-P2P产品信息表
+                            if (investmentPlanSelect.getInvestmentPlanP2PProductInfos() != null
+                                    && !investmentPlanSelect.getInvestmentPlanP2PProductInfos().isEmpty()) {
+                                List<CaseInvestmentPlanP2PProductInfo> investmentPlanP2PProductInfos = investmentPlanSelect.getInvestmentPlanP2PProductInfos();//投资规划-P2P产品信息表
+                                for (CaseInvestmentPlanP2PProductInfo investmentPlanP2PProductInfo : investmentPlanP2PProductInfos) {
+                                    //id为空则新增
+                                    if (StringUtils.isBlank(investmentPlanP2PProductInfo.getP2pProductinfoId())) {
+                                        investmentPlanP2PProductInfo.setP2pProductinfoId(IdUtil.randomUUID());
+                                        investmentPlanP2PProductInfo.setProductSelectId(selectId);
+                                        investmentPlanP2PProductInfo.setAddTime(new Date());
+                                        investmentPlanP2PProductInfoMapper.insert(investmentPlanP2PProductInfo);
+                                    }
+                                }
+                            }
+                            //投资规划-实物黄金信息表
+                            if (investmentPlanSelect.getInvestmentPlanRealGoldProductInfos() != null
+                                    && !investmentPlanSelect.getInvestmentPlanRealGoldProductInfos().isEmpty()) {
+                                List<CaseInvestmentPlanRealGoldProductInfo> investmentPlanRealGoldProductInfos = investmentPlanSelect.getInvestmentPlanRealGoldProductInfos();//投资规划-实物黄金信息表
+
+                                for (CaseInvestmentPlanRealGoldProductInfo investmentPlanRealGoldProductInfo : investmentPlanRealGoldProductInfos) {
+                                    //id为空则新增
+                                    if (StringUtils.isBlank(investmentPlanRealGoldProductInfo.getRealGoldProductId())) {
+                                        investmentPlanRealGoldProductInfo.setRealGoldProductId(IdUtil.randomUUID());
+                                        investmentPlanRealGoldProductInfo.setProductSelectId(selectId);
+                                        investmentPlanRealGoldProductInfo.setAddTime(new Date());
+                                        investmentPlanRealGoldProductInfoMapper.insert(investmentPlanRealGoldProductInfo);
+                                    }
+                                }
+                            }
                         }
                     }
-                    stuInvestmentPlan.setCaseInvestmentPlanId(IdUtil.randomUUID());
-                    investmentPlanMapper.insert(stuInvestmentPlan);
-
                     //比较正确答案
-                    wrongCount = getCaseInvestmentPlan(wrongCount, stuInvestmentPlan);
+                    wrongCount = getCaseInvestmentPlan(wrongCount, investmentPlan);
                 }
 
                 if (type.equals("税务筹划")) {
@@ -1354,7 +1503,8 @@ public class CaseServiceImpl implements CaseService {
                     wrongCount = getCaseHeritageWrongCount(wrongCount, stuData);
                 }
             }
-        } catch (Exception e) {
+        } catch (
+                Exception e) {
             e.printStackTrace();
             throw new RuntimeException("实训提交失败");
         }
diff --git a/src/main/java/com/sztzjy/money_management/service/impl/ComputeServiceImpl.java b/src/main/java/com/sztzjy/money_management/service/impl/ComputeServiceImpl.java
index ffafe6d..48782c1 100644
--- a/src/main/java/com/sztzjy/money_management/service/impl/ComputeServiceImpl.java
+++ b/src/main/java/com/sztzjy/money_management/service/impl/ComputeServiceImpl.java
@@ -4,10 +4,13 @@ import com.sztzjy.money_management.entity.CaseInvestmentPlanInsuranceProductInfo
 import com.sztzjy.money_management.entity.InsuranceProWithBLOBs;
 import com.sztzjy.money_management.mapper.InsuranceProMapper;
 import com.sztzjy.money_management.service.ComputeService;
+import com.sztzjy.money_management.util.ResultEntity;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 /**
  * @Author xcj
@@ -19,7 +22,7 @@ public class ComputeServiceImpl implements ComputeService {
     private InsuranceProMapper insuranceProMapper;
 
     @Override
-    public BigDecimal getAnnualPremium(CaseInvestmentPlanInsuranceProductInfo productInfo) {
+    public ResultEntity<BigDecimal> getAnnualPremium(CaseInvestmentPlanInsuranceProductInfo productInfo) {
         Integer age = productInfo.getAge(); //年齢
         String gender = productInfo.getGender(); //性別
         String insurancePeriod = productInfo.getInsurancePeriod(); //保险年数
@@ -29,1694 +32,2284 @@ public class ComputeServiceImpl implements ComputeService {
         InsuranceProWithBLOBs insuranceProWithBLOBs = insuranceProMapper.selectByPrimaryKey(insuranceProId);
         String name = insuranceProWithBLOBs.getName(); //保险名称
 
-        BigDecimal fee = BigDecimal.ZERO;
-
-        fee = type1(age, gender, insurancePeriod, paymentMethod, insuranceAmount, name, fee);
-        fee = type2(age, gender, name, paymentMethod, fee);
-        fee = type3(age, gender, name, fee);
-        fee = type4(age, gender, insurancePeriod, paymentMethod, insuranceAmount, name, fee);
-        fee = type5(age, gender, insurancePeriod, paymentMethod, insuranceAmount, name, fee);
-        fee = type6(age, gender, name, fee);
-        //todo 百万任我行
-        fee = type8(age, gender, insurancePeriod, paymentMethod, name, fee);
-        fee = type9(age, gender, paymentMethod, name, fee);
-        fee = type10(age, gender, paymentMethod, name, fee);
-        fee = type11(age, gender, paymentMethod, name, fee);
-        fee = type12(age, gender, paymentMethod, name, fee);
-        fee = type13(age, gender, name, fee);
-        fee = type14(age, gender, insurancePeriod, paymentMethod, name, fee);
-        fee = type15(age, name, fee);
-        fee = type16(age, gender, name, fee);
-        //todo 终身重疾险所属产品暂无公式
-        fee = type25(age, name, fee);
-        fee = type26(age, gender, name, fee);
-        fee = type27(name, fee);
-        fee = type28(name, fee);
-        fee = type29(age, paymentMethod, name, fee);
-        fee = type30(age, paymentMethod, name, fee);
-        fee = type31(name, fee);
-        fee = type32(age, name, fee, insuranceAmount);
-        fee = type33(age, gender, name, fee, paymentMethod); //todo age必须大于18小于55
-        fee = type34(age, gender, name, fee, paymentMethod);  //todo  age 0~17之间
-        fee = type35(age, gender, name, fee, paymentMethod);  //todo  age 0~17之间
-        fee = type36(age, gender, name, fee, paymentMethod);  //todo  age 0~60之间
-        fee = type37(age, gender, name, fee, paymentMethod);  //todo  age 0~65之间
-        fee = type38(age, gender, name, fee, paymentMethod);  //todo  age 0~60之间
-        fee = type39(age, gender, name, fee, paymentMethod);  //todo  age 0~15之间
-
-        return fee;
-    }
-
-
-    private BigDecimal type1(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal insuranceAmount, String name, BigDecimal fee) {
+        BigDecimal fee = null;
         if (name.equals("爱相随定期寿险")) {
-            if (paymentMethod.equals("趸交")) {
-                if (insurancePeriod.equals("10年")) {
-                    if (insuranceAmount.compareTo(BigDecimal.valueOf(100000)) == 0) {
-                        fee = gender.equals("男") ?
-                                new BigDecimal(-1883.25).add(new BigDecimal(123.625).multiply(new BigDecimal(age))) :
-                                new BigDecimal(-1434).add(new BigDecimal(88).multiply(new BigDecimal(age)));
-                    } else if (insuranceAmount.compareTo(BigDecimal.valueOf(200000)) == 0) {
-                        fee = gender.equals("男") ?
-                                new BigDecimal(-3766.5).add(new BigDecimal(247.25).multiply(new BigDecimal(age))) :
-                                new BigDecimal(-2868).add(new BigDecimal(176).multiply(new BigDecimal(age)));
-                    } else if (insuranceAmount.compareTo(BigDecimal.valueOf(300000)) == 0) {
-                        fee = gender.equals("男") ?
-                                new BigDecimal(-5649.75).add(new BigDecimal(370.875).multiply(new BigDecimal(age))) :
-                                new BigDecimal(-4302).add(new BigDecimal(264).multiply(new BigDecimal(age)));
-                    } else if (insuranceAmount.compareTo(BigDecimal.valueOf(400000)) == 0) {
-                        fee = gender.equals("男") ?
-                                new BigDecimal(-7533).add(new BigDecimal(494.5).multiply(new BigDecimal(age))) :
-                                new BigDecimal(-5736).add(new BigDecimal(352).multiply(new BigDecimal(age)));
-                    } else if (insuranceAmount.compareTo(BigDecimal.valueOf(500000)) == 0) {
-                        fee = gender.equals("男") ?
-                                new BigDecimal(-9416.25).add(new BigDecimal(618.125).multiply(new BigDecimal(age))) :
-                                new BigDecimal(-7170).add(new BigDecimal(440).multiply(new BigDecimal(age)));
-                    }
-                } else if (insurancePeriod.equals("20年")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-7612.25).add(new BigDecimal(416.125).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-6058).add(new BigDecimal(313).multiply(new BigDecimal(age)));
-                } else if (insurancePeriod.equals("30年")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-6543.75).add(new BigDecimal(485.875).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-11720).add(new BigDecimal(636.5).multiply(new BigDecimal(age)));
-                }
-            } else if (paymentMethod.equals("5年交")) {
-                if (insuranceAmount.compareTo(BigDecimal.valueOf(100000)) == 0) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-462).add(new BigDecimal(30).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-338).add(new BigDecimal(21).multiply(new BigDecimal(age)));
-                } else if (insuranceAmount.compareTo(BigDecimal.valueOf(200000)) == 0) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-924).add(new BigDecimal(60).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-676).add(new BigDecimal(42).multiply(new BigDecimal(age)));
-                } else if (insuranceAmount.compareTo(BigDecimal.valueOf(300000)) == 0) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-1386).add(new BigDecimal(90).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-1014).add(new BigDecimal(63).multiply(new BigDecimal(age)));
-                }
-            } else if (paymentMethod.equals("10年交")) {
-                if (insurancePeriod.equals("20年")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-918).add(new BigDecimal(50).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-727).add(new BigDecimal(37.5).multiply(new BigDecimal(age)));
-                } else if (insurancePeriod.equals("30年")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-858.9818).add(new BigDecimal(61.49091).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-706.6545).add(new BigDecimal(46.32727).multiply(new BigDecimal(age)));
-                }
-            } else if (paymentMethod.equals("20年交")) {
-                if (insurancePeriod.equals("30年")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-505.5636).add(new BigDecimal(35.78182).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-400.9455).add(new BigDecimal(26.47273).multiply(new BigDecimal(age)));
-                }
-            }
+            return type1(age, gender, insurancePeriod, paymentMethod, insuranceAmount, fee); //18岁-50岁
         }
-        return fee;
-    }
-
-
-    private BigDecimal type2(Integer age, String gender, String name, String paymentMethod, BigDecimal fee) {
         if (name.equals("平安附加少儿定期寿险")) {
-            if (paymentMethod.equals("5年交")) {
-                fee = gender.equals("男") ?
-                        new BigDecimal(122.3643).subtract(new BigDecimal(3.337104).multiply(new BigDecimal(age))) :
-                        new BigDecimal(69.36086).subtract(new BigDecimal(2.483032).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("10年交")) {
-                fee = gender.equals("男") ?
-                        new BigDecimal(62).subtract(new BigDecimal(1.4196832).multiply(new BigDecimal(age))) :
-                        new BigDecimal(36.60068).subtract(new BigDecimal(1.170814).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("15年交")) {
-                fee = gender.equals("男") ?
-                        new BigDecimal(43.63014).subtract(new BigDecimal(1.027397).multiply(new BigDecimal(age))) :
-                        new BigDecimal(27.6484).subtract(new BigDecimal(1.347032).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("20年交")) {
-                fee = gender.equals("男") ?
-                        new BigDecimal(35.78947).subtract(new BigDecimal(1.052632).multiply(new BigDecimal(age))) :
-                        new BigDecimal(24.60526).subtract(new BigDecimal(1.973684).multiply(new BigDecimal(age)));
-            }
+            return type2(age, gender, paymentMethod, fee); //0岁-17岁之间
         }
-        return fee;
-    }
-
-
-    private BigDecimal type3(Integer age, String gender, String name, BigDecimal fee) {
         if (name.equals("安顺齐乐定期寿险")) {
-            fee = gender.equals("男") ?
-                    new BigDecimal(-293.0923).add(new BigDecimal(14.58803).multiply(new BigDecimal(age))) :
-                    new BigDecimal(-204.1251).add(new BigDecimal(9.615645).multiply(new BigDecimal(age)));
+            return type3(age, gender, fee); //18-55
         }
-        return fee;
-    }
-
-    private BigDecimal type4(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal insuranceAmount, String name, BigDecimal fee) {
         if (name.equals("爱家无忧定期寿险")) {
-            if (insurancePeriod.equals("20年")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-4081.625).add(new BigDecimal(210.3125).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-2876).add(new BigDecimal(138).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-918.375).add(new BigDecimal(47.1875).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-644.75).add(new BigDecimal(30.875).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-493.625).add(new BigDecimal(25.3125).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-344).add(new BigDecimal(16.5).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-357.5).add(new BigDecimal(18.25).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-243.375).add(new BigDecimal(11.6875).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-288.375).add(new BigDecimal(14.6875).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-201).add(new BigDecimal(9.5).multiply(new BigDecimal(age)));
-                }
-            } else if (insurancePeriod.equals("30年")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-3897.782).add(new BigDecimal(257.8909).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-2832.927).add(new BigDecimal(169.4636).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-870).add(new BigDecimal(57.54545).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-630.4545).add(new BigDecimal(37.72727).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-467.5273).add(new BigDecimal(30.76364).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-641.4545).add(new BigDecimal(37.72727).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-332.7455).add(new BigDecimal(21.87273).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-335.0909).add(new BigDecimal(20.04545).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-265.9818).add(new BigDecimal(17.49091).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-193.8909).add(new BigDecimal(11.44545).multiply(new BigDecimal(age)));
-                }
-            } else if (insurancePeriod.equals("至60岁")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(2763.25).add(new BigDecimal(1.375).multiply(new BigDecimal(age))) :
-                            new BigDecimal(1387.5).add(new BigDecimal(5.75).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(616.375).add(new BigDecimal(0.3125).multiply(new BigDecimal(age))) :
-                            new BigDecimal(308.375).add(new BigDecimal(1.3125).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(321.25).add(new BigDecimal(0.375).multiply(new BigDecimal(age))) :
-                            new BigDecimal(165.75).add(new BigDecimal(0.625).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(205.75).add(new BigDecimal(1.125).multiply(new BigDecimal(age))) :
-                            new BigDecimal(103.123).add(new BigDecimal(0.9375).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(143.125).add(new BigDecimal(1.6875).multiply(new BigDecimal(age))) :
-                            new BigDecimal(81.25).add(new BigDecimal(0.875).multiply(new BigDecimal(age)));
-                }
-            } else if (insurancePeriod.equals("至70岁")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(3229.125).add(new BigDecimal(94.9375).multiply(new BigDecimal(age))) :
-                            new BigDecimal(1761.75).add(new BigDecimal(66.625).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(714.25).add(new BigDecimal(21.375).multiply(new BigDecimal(age))) :
-                            new BigDecimal(388).add(new BigDecimal(15).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(714.25).add(new BigDecimal(21.375).multiply(new BigDecimal(age))) :
-                            new BigDecimal(203.875).add(new BigDecimal(8.0625).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(254.75).add(new BigDecimal(8.625).multiply(new BigDecimal(age))) :
-                            new BigDecimal(144.5).add(new BigDecimal(5.75).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(196.75).add(new BigDecimal(7.125).multiply(new BigDecimal(age))) :
-                            new BigDecimal(108.5).add(new BigDecimal(4.75).multiply(new BigDecimal(age)));
-                }
-            }
+            return type4(age, gender, insurancePeriod, paymentMethod, insuranceAmount, fee); //18~50
+        }
+        if (name.equals("i守护定期寿险")) {
+            return type5(age, gender, insurancePeriod, paymentMethod, insuranceAmount, fee); //0岁-50岁
+        }
+        if (name.equals("百万任我行两全保险")) {
+            return type6(age, fee, insurancePeriod); //18~55
+        }
+        if (name.equals("安康福瑞两全寿险B款")) {
+            return type8(age, gender, insurancePeriod, paymentMethod, fee); //0岁-50岁
+        }
+        if (name.equals("平安福终身寿险")) {
+            return type9(age, gender, paymentMethod, fee);//0岁-65岁
+        }
+        if (name.equals("少儿平安福终身寿险")) {
+            return type10(age, gender, paymentMethod, fee);//0岁-17岁
+        }
+        if (name.equals("鑫如意终身寿险")) {
+            return type11(age, gender, paymentMethod, fee);//0岁-70岁
+        }
+        if (name.equals("一生保终身寿险")) {
+            return type12(age, gender, paymentMethod, fee); //0岁-50岁
+        }
+        if (name.equals("福享安康定期重疾险")) {
+            return type13(age, gender, fee);//0岁-50岁
+        }
+        if (name.equals("合众定期重疾险")) {
+            return type14(age, gender, insurancePeriod, paymentMethod, fee);//0岁-50岁
+        }
+        if (name.equals("平安尊优人生全球医疗保险")) {
+            return type15(age, fee);//0岁-65岁
+        }
+        if (name.equals("抗癌卫士医疗险")) {
+            return type16(age, gender, fee);//0岁-55岁
+        }
+        if (name.equals("护身福重疾险")) {
+            return type17(age, gender, fee, paymentMethod); //0岁-55岁
+        }
+        if (name.equals("乐享福重疾险")) {
+            return type18(age, gender, fee, paymentMethod); //0岁-64岁
+        }
+        if (name.equals("平安福重疾险")) {
+            return type19(age, gender, fee, paymentMethod); //18岁-55岁之间
+        }
+        if (name.equals("少儿重疾险")) {
+            return type20(age, gender, fee, paymentMethod); //0岁-17岁
+        }
+        if (name.equals("乐安康终身重疾险")) {
+            return type21(age, gender, fee, paymentMethod); //0岁-64岁
         }
-        return fee;
+        if (name.equals("康健一生终身重疾险")) {
+            return type22(age, gender, fee, paymentMethod); //0岁-55岁
+        }
+        if (name.equals("安康住院费用医疗保险")) {
+            return type25(age, fee);//0岁-65岁
+        }
+        if (name.equals("真爱关心住院费用补贴险")) {
+            return type26(age, gender, fee);//18岁-50岁
+        }
+        if (name.equals("i相随交通工具意外伤害险")) {
+            return type27(age, fee);//0岁-65岁
+        }
+        if (name.equals("平安旅行意外伤害保险")) {
+            return type28(age, fee);//0岁-80岁
+        }
+        if (name.equals("长期意外伤害险")) {
+            return type29(age, paymentMethod, fee);//18岁-65岁
+        }
+        if (name.equals("少儿长期意外伤害保险")) {
+            return type30(age, paymentMethod, fee);//0岁-17岁
+        }
+        if (name.equals("优乐保人身意外伤害保险")) {
+            return type31(age, fee);//0岁-65岁
+        }
+        if (name.equals("意安心人身意外险")) {
+            return type32(age, fee, insuranceAmount);//0岁-63岁
+        }
+        if (name.equals("护身福终身寿险(分红型)")) {
+            return type33(age, gender, fee, paymentMethod); //todo age必须大于18小于55
+        }
+        if (name.equals("世纪天使分红保险")) {
+            return type34(age, gender, fee, paymentMethod);  //todo  age 0~17之间
+        }
+        if (name.equals("守护星少儿两全保险")) {
+            return type35(age, gender, fee, paymentMethod);  //todo  age 0~17之间
+        }
+        if (name.equals("鑫利两全保险(分红型)")) {
+            return type36(age, gender, fee, paymentMethod);  //todo  age 0~60之间
+        }
+        if (name.equals("鑫盛2012终身寿险(分红型)")) {
+            return type37(age, gender, fee, paymentMethod);  //todo  age 0~65之间
+        }
+        if (name.equals("关爱e生两全保险(分红型)")) {
+            return type38(age, gender, fee, paymentMethod);  //todo  age 0~60之间
+        }
+        if (name.equals("锦绣前程少儿两全保险A款(分红型)")) {
+            return type39(age, gender, fee, paymentMethod);  //todo  age 0~15之间
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.INTERNAL_SERVER_ERROR, "服务器错误!请联系管理员");
     }
 
-    private BigDecimal type5(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal insuranceAmount, String name, BigDecimal fee) {
-        if (name.equals("i守护定期寿险")) {
-            // 保10年
+
+    private ResultEntity<BigDecimal> type1(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal insuranceAmount, BigDecimal fee) {
+        if (age > 50 || age < 18) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK, "被保人年龄必须在18~50之间");
+        }
+        if (paymentMethod.equals("趸交")) {
             if (insurancePeriod.equals("10年")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-6916.688).add(new BigDecimal(290.8912).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-5097.211).add(new BigDecimal(205.7217).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-1479.402).add(new BigDecimal(62.41462).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-1092.94).add(new BigDecimal(44.24146).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-808.8295).add(new BigDecimal(33.89869).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-584.1145).add(new BigDecimal(23.70319).multiply(new BigDecimal(age)));
-                }
-            }
-            // 保20年
-            else if (insurancePeriod.equals("20年")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-8486.75).add(new BigDecimal(434.375).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-6494.75).add(new BigDecimal(310.375).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-1840).add(new BigDecimal(94).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-1400).add(new BigDecimal(67).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-978).add(new BigDecimal(50).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-753.75).add(new BigDecimal(35.875).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-587.25).add(new BigDecimal(29.625).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-433.25).add(new BigDecimal(20.625).multiply(new BigDecimal(age)));
-                }
-            }
-            // 保30年
-            else if (insurancePeriod.equals("30年")) {
-                if (paymentMethod.equals("趸交")) {
+                if (insuranceAmount.compareTo(BigDecimal.valueOf(100000)) == 0) {
                     fee = gender.equals("男") ?
-                            new BigDecimal(-8229.004).add(new BigDecimal(531.7348).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-6510.508).add(new BigDecimal(380.9697).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
+                            new BigDecimal(-1883.25).add(new BigDecimal(123.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                            new BigDecimal(-1434).add(new BigDecimal(88).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+                } else if (insuranceAmount.compareTo(BigDecimal.valueOf(200000)) == 0) {
                     fee = gender.equals("男") ?
-                            new BigDecimal(-1776.346).add(new BigDecimal(114.8417).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-1404.07).add(new BigDecimal(82.3153).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
+                            new BigDecimal(-3766.5).add(new BigDecimal(247.25).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                            new BigDecimal(-2868).add(new BigDecimal(176).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+                } else if (insuranceAmount.compareTo(BigDecimal.valueOf(300000)) == 0) {
                     fee = gender.equals("男") ?
-                            new BigDecimal(-948.1926).add(new BigDecimal(61.09499).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-747.6319).add(new BigDecimal(43.66095).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
+                            new BigDecimal(-5649.75).add(new BigDecimal(370.875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                            new BigDecimal(-4302).add(new BigDecimal(264).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+                } else if (insuranceAmount.compareTo(BigDecimal.valueOf(400000)) == 0) {
                     fee = gender.equals("男") ?
-                            new BigDecimal(-535.8245).add(new BigDecimal(34.75594).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-427.3153).add(new BigDecimal(24.87467).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("30年交")) {
+                            new BigDecimal(-7533).add(new BigDecimal(494.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                            new BigDecimal(-5736).add(new BigDecimal(352).multiply(new BigDecimal(age)).setScale(2, RoundingMode.HALF_UP));
+                } else if (insuranceAmount.compareTo(BigDecimal.valueOf(500000)) == 0) {
                     fee = gender.equals("男") ?
-                            new BigDecimal(-424.0765).add(new BigDecimal(26.87335).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-327.5528).add(new BigDecimal(18.96438).multiply(new BigDecimal(age)));
+                            new BigDecimal(-9416.25).add(new BigDecimal(618.125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                            new BigDecimal(-7170).add(new BigDecimal(440).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
                 }
+            } else if (insurancePeriod.equals("20年")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-7612.25).add(new BigDecimal(416.125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-6058).add(new BigDecimal(313).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (insurancePeriod.equals("30年")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-6543.75).add(new BigDecimal(485.875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-11720).add(new BigDecimal(636.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
-            // 至50岁
-            else if (insurancePeriod.equals("至50岁")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(3869.503).subtract(new BigDecimal(36.00596).multiply(new BigDecimal(age))) :
-                            new BigDecimal(2014.461).subtract(new BigDecimal(17.46647).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(832.0417).subtract(new BigDecimal(7.615499).multiply(new BigDecimal(age))) :
-                            new BigDecimal(434.0934).subtract(new BigDecimal(3.710879).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(446.0507).subtract(new BigDecimal(4.247395).multiply(new BigDecimal(age))) :
-                            new BigDecimal(227.2429).subtract(new BigDecimal(1.833085).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(215.5).subtract(new BigDecimal(0.75).multiply(new BigDecimal(age))) :
-                            new BigDecimal(108.5).subtract(new BigDecimal(0.25).multiply(new BigDecimal(age)));
-                }
+        } else if (paymentMethod.equals("5年交")) {
+            if (insuranceAmount.compareTo(BigDecimal.valueOf(100000)) == 0) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-462).add(new BigDecimal(30).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-338).add(new BigDecimal(21).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (insuranceAmount.compareTo(BigDecimal.valueOf(200000)) == 0) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-924).add(new BigDecimal(60).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-676).add(new BigDecimal(42).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (insuranceAmount.compareTo(BigDecimal.valueOf(300000)) == 0) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-1386).add(new BigDecimal(90).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-1014).add(new BigDecimal(63).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
-            // 至60岁
-            else if (insurancePeriod.equals("至60岁")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(5887.119).subtract(new BigDecimal(2.996065).multiply(new BigDecimal(age))) :
-                            new BigDecimal(3246.388).add(new BigDecimal(9.243957).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("2年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(1277.732).subtract(new BigDecimal(0.7588533).multiply(new BigDecimal(age))) :
-                            new BigDecimal(700.7757).add(new BigDecimal(2.006745).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(667.9202).subtract(new BigDecimal(0.1630129).multiply(new BigDecimal(age))) :
-                            new BigDecimal(367.8415).add(new BigDecimal(1.155143).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(298.7779).add(new BigDecimal(3.025335).multiply(new BigDecimal(age))) :
-                            new BigDecimal(167.531).add(new BigDecimal(2.250373).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("30年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(196).add(new BigDecimal(3.5).multiply(new BigDecimal(age))) :
-                            new BigDecimal(105).add(new BigDecimal(2.5).multiply(new BigDecimal(age)));
-                }
+        } else if (paymentMethod.equals("10年交")) {
+            if (insurancePeriod.equals("20年")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-918).add(new BigDecimal(50).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-727).add(new BigDecimal(37.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (insurancePeriod.equals("30年")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-858.9818).add(new BigDecimal(61.49091).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-706.6545).add(new BigDecimal(46.32727).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
-            // 至70岁
-            else if (insurancePeriod.equals("至70岁")) {
-                if (paymentMethod.equals("趸交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(8795.218).add(new BigDecimal(129.1426).multiply(new BigDecimal(age))) :
-                            new BigDecimal(5451.137).add(new BigDecimal(103.0999).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(1917.01).add(new BigDecimal(27.44948).multiply(new BigDecimal(age))) :
-                            new BigDecimal(1184.544).add(new BigDecimal(22.1204).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(993.5714).add(new BigDecimal(15.35714).multiply(new BigDecimal(age))) :
-                            new BigDecimal(611.5801).add(new BigDecimal(12.22285).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(404.2983).add(new BigDecimal(14.03256).multiply(new BigDecimal(age))) :
-                            new BigDecimal(240.2545).add(new BigDecimal(10.40419).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("30年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(279.1951).add(new BigDecimal(11.44611).multiply(new BigDecimal(age))) :
-                            new BigDecimal(169.7271).add(new BigDecimal(8.117326).multiply(new BigDecimal(age)));
-                }
+        } else if (paymentMethod.equals("20年交")) {
+            if (insurancePeriod.equals("30年")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-505.5636).add(new BigDecimal(35.78182).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-400.9455).add(new BigDecimal(26.47273).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
         }
-        return fee;
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
 
-    private BigDecimal type6(Integer age, String gender, String name, BigDecimal fee) {
-        if (name.equals("百万任我行两全保险")) {
+    private ResultEntity<BigDecimal> type2(Integer age, String gender, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 17) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~17之间");
+        }
+        if (paymentMethod.equals("5年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(122.3643).subtract(new BigDecimal(3.337104).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(69.36086).subtract(new BigDecimal(2.483032).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("10年交")) {
             fee = gender.equals("男") ?
-                    new BigDecimal(-293.0923).add(new BigDecimal(14.58803).multiply(new BigDecimal(age))) :
-                    new BigDecimal(-204.1251).add(new BigDecimal(9.615645).multiply(new BigDecimal(age)));
+                    new BigDecimal(62).subtract(new BigDecimal(1.4196832).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(36.60068).subtract(new BigDecimal(1.170814).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("15年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(43.63014).subtract(new BigDecimal(1.027397).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(27.6484).subtract(new BigDecimal(1.347032).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("20年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(35.78947).subtract(new BigDecimal(1.052632).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(24.60526).subtract(new BigDecimal(1.973684).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
         }
-        return fee;
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
 
-    private BigDecimal type8(Integer age, String gender, String insurancePeriod, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("安康福瑞两全寿险")) {
-            // 至60岁
-            if (insurancePeriod.equals("至60岁")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(134.4336).multiply(new BigDecimal(age)).add(new BigDecimal(805.9708)) :
-                            new BigDecimal(138.9243).multiply(new BigDecimal(age)).add(new BigDecimal(736.2398));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(66.31167).multiply(new BigDecimal(age)).add(new BigDecimal(560.4141)) :
-                            new BigDecimal(68.12841).multiply(new BigDecimal(age)).add(new BigDecimal(530.5551));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(43.43579).multiply(new BigDecimal(age)).add(new BigDecimal(468.8614)) :
-                            new BigDecimal(44.36105).multiply(new BigDecimal(age)).add(new BigDecimal(451.793));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(32.17622).multiply(new BigDecimal(age)).add(new BigDecimal(419.5518)) :
-                            new BigDecimal(32.70488).multiply(new BigDecimal(age)).add(new BigDecimal(407.2073));
-                }
-            }
-            // 至70岁
-            else if (insurancePeriod.equals("至70岁")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(90.22489).multiply(new BigDecimal(age)).add(new BigDecimal(440.1598)) :
-                            new BigDecimal(101.6416).multiply(new BigDecimal(age)).add(new BigDecimal(349.0765));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(51.79954).multiply(new BigDecimal(age)).add(new BigDecimal(204.1393)) :
-                            new BigDecimal(57.17968).multiply(new BigDecimal(age)).add(new BigDecimal(166.6975));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(33.93669).multiply(new BigDecimal(age)).add(new BigDecimal(212.7637)) :
-                            new BigDecimal(37.17765).multiply(new BigDecimal(age)).add(new BigDecimal(194.337));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(25.11863).multiply(new BigDecimal(age)).add(new BigDecimal(213.2164)) :
-                            new BigDecimal(27.25096).multiply(new BigDecimal(age)).add(new BigDecimal(204.2685));
-                }
-            }
-            // 至85岁
-            else if (insurancePeriod.equals("至85岁")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(49.31256).multiply(new BigDecimal(age)).add(new BigDecimal(403.1701)) :
-                            new BigDecimal(57.19064).multiply(new BigDecimal(age)).add(new BigDecimal(277.605));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(28.35662).multiply(new BigDecimal(age)).add(new BigDecimal(199.9806)) :
-                            new BigDecimal(32.19155).multiply(new BigDecimal(age)).add(new BigDecimal(137.8265));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(19.14642).multiply(new BigDecimal(age)).add(new BigDecimal(170.8498)) :
-                            new BigDecimal(21.21195).multiply(new BigDecimal(age)).add(new BigDecimal(136.6672));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(14.49041).multiply(new BigDecimal(age)).add(new BigDecimal(157.3151)) :
-                            new BigDecimal(15.50137).multiply(new BigDecimal(age)).add(new BigDecimal(135.3836));
-                }
-            }
+    private ResultEntity<BigDecimal> type3(Integer age, String gender, BigDecimal fee) {
+        if (age < 18 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~55之间");
         }
-        return fee;
+        fee = gender.equals("男") ?
+                new BigDecimal(-293.0923).add(new BigDecimal(14.58803).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                new BigDecimal(-204.1251).add(new BigDecimal(9.615645).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    // 平安福终身寿险
-    private BigDecimal type9(Integer age, String gender, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("平安福终身寿险")) {
+    private ResultEntity<BigDecimal> type4(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal insuranceAmount, BigDecimal fee) {
+        if (age < 18 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~50之间");
+        }
+        if (insurancePeriod.equals("20年")) {
             if (paymentMethod.equals("趸交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(543.2694).multiply(new BigDecimal(age)).subtract(new BigDecimal(4834.593)) :
-                        new BigDecimal(15.50137).multiply(new BigDecimal(age)).add(new BigDecimal(135.3836));
+                        new BigDecimal(-4081.625).add(new BigDecimal(210.3125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-2876).add(new BigDecimal(138).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-918.375).add(new BigDecimal(47.1875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-644.75).add(new BigDecimal(30.875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("10年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(74.61229).multiply(new BigDecimal(age)).subtract(new BigDecimal(512.8383)) :
-                        new BigDecimal(67.07388).multiply(new BigDecimal(age)).subtract(new BigDecimal(521.4685));
+                        new BigDecimal(-493.625).add(new BigDecimal(25.3125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-344).add(new BigDecimal(16.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("15年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(54.8098).multiply(new BigDecimal(age)).subtract(new BigDecimal(412.383)) :
-                        new BigDecimal(48.65399).multiply(new BigDecimal(age)).subtract(new BigDecimal(400.3255));
+                        new BigDecimal(-357.5).add(new BigDecimal(18.25).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-243.375).add(new BigDecimal(11.6875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("20年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(46.90746).multiply(new BigDecimal(age)).subtract(new BigDecimal(396.3661)) :
-                        new BigDecimal(40.96928).multiply(new BigDecimal(age)).subtract(new BigDecimal(360.4042));
-            } else if (paymentMethod.equals("30年交")) {
+                        new BigDecimal(-288.375).add(new BigDecimal(14.6875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-201).add(new BigDecimal(9.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        } else if (insurancePeriod.equals("30年")) {
+            if (paymentMethod.equals("趸交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-3897.782).add(new BigDecimal(257.8909).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-2832.927).add(new BigDecimal(169.4636).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-870).add(new BigDecimal(57.54545).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-630.4545).add(new BigDecimal(37.72727).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-467.5273).add(new BigDecimal(30.76364).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-641.4545).add(new BigDecimal(37.72727).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-332.7455).add(new BigDecimal(21.87273).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-335.0909).add(new BigDecimal(20.04545).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(30.08859).multiply(new BigDecimal(age)).subtract(new BigDecimal(131.8172)) :
-                        new BigDecimal(26.06742).multiply(new BigDecimal(age)).subtract(new BigDecimal(124.9438));
+                        new BigDecimal(-265.9818).add(new BigDecimal(17.49091).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-193.8909).add(new BigDecimal(11.44545).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
-        }
-        return fee;
-    }
-
-    // 少儿平安福终身寿险
-    private BigDecimal type10(Integer age, String gender, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("少儿平安福终身寿险")) {
-            if (paymentMethod.equals("10年交")) {
+        } else if (insurancePeriod.equals("至60岁")) {
+            if (paymentMethod.equals("趸交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(2763.25).add(new BigDecimal(1.375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(1387.5).add(new BigDecimal(5.75).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(32.03054).multiply(new BigDecimal(age)).add(new BigDecimal(669.3495)) :
-                        new BigDecimal(34.6776).multiply(new BigDecimal(age)).add(new BigDecimal(474.6437));
+                        new BigDecimal(616.375).add(new BigDecimal(0.3125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(308.375).add(new BigDecimal(1.3125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(321.25).add(new BigDecimal(0.375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(165.75).add(new BigDecimal(0.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("15年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(23.4276).multiply(new BigDecimal(age)).add(new BigDecimal(485.8937)) :
-                        new BigDecimal(19.95475).multiply(new BigDecimal(age)).add(new BigDecimal(413.371));
+                        new BigDecimal(205.75).add(new BigDecimal(1.125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(103.123).add(new BigDecimal(0.9375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("20年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(19.01018).multiply(new BigDecimal(age)).add(new BigDecimal(388.1165)) :
-                        new BigDecimal(16.13688).multiply(new BigDecimal(age)).add(new BigDecimal(329.6776));
+                        new BigDecimal(143.125).add(new BigDecimal(1.6875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(81.25).add(new BigDecimal(0.875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
-        }
-        return fee;
-    }
-
-    // 鑫如意终身寿险
-    private BigDecimal type11(Integer age, String gender, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("鑫如意终身寿险")) {
-            if (paymentMethod.equals("五年交")) {
+        } else if (insurancePeriod.equals("至70岁")) {
+            if (paymentMethod.equals("趸交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(61.08333).multiply(new BigDecimal(age)).add(new BigDecimal(16305.83)) :
-                        new BigDecimal(89.44048).multiply(new BigDecimal(age)).add(new BigDecimal(15930.83));
-            } else if (paymentMethod.equals("十年交")) {
+                        new BigDecimal(3229.125).add(new BigDecimal(94.9375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(1761.75).add(new BigDecimal(66.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(714.25).add(new BigDecimal(21.375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(388).add(new BigDecimal(15).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(714.25).add(new BigDecimal(21.375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(203.875).add(new BigDecimal(8.0625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(46.71429).multiply(new BigDecimal(age)).add(new BigDecimal(8790)) :
-                        new BigDecimal(46.53571).multiply(new BigDecimal(age)).add(new BigDecimal(8576.786));
-            } else if (paymentMethod.equals("二十年交")) {
+                        new BigDecimal(254.75).add(new BigDecimal(8.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(144.5).add(new BigDecimal(5.75).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(26.34286).multiply(new BigDecimal(age)).add(new BigDecimal(5271.429)) :
-                        new BigDecimal(26.34286).multiply(new BigDecimal(age)).add(new BigDecimal(5151.429));
+                        new BigDecimal(196.75).add(new BigDecimal(7.125).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(108.5).add(new BigDecimal(4.75).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
         }
-        return fee;
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    // 一生保终身寿险
-    private BigDecimal type12(Integer age, String gender, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("一生保终身寿险")) {
+    private ResultEntity<BigDecimal> type5(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal insuranceAmount, BigDecimal fee) {
+        if (age < 0 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~50之间");
+        }
+        // 保10年
+        if (insurancePeriod.equals("10年")) {
             if (paymentMethod.equals("趸交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(757.3143).multiply(new BigDecimal(age)).add(new BigDecimal(5271.429)) :
-                        new BigDecimal(683.6543).multiply(new BigDecimal(age)).add(new BigDecimal(5113.476));
-            } else if (paymentMethod.equals("3年交")) {
+                        new BigDecimal(-6916.688).add(new BigDecimal(290.8912).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-5097.211).add(new BigDecimal(205.7217).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-1479.402).add(new BigDecimal(62.41462).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-1092.94).add(new BigDecimal(44.24146).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-808.8295).add(new BigDecimal(33.89869).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-584.1145).add(new BigDecimal(23.70319).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        // 保20年
+        else if (insurancePeriod.equals("20年")) {
+            if (paymentMethod.equals("趸交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(261.9657).multiply(new BigDecimal(age)).add(new BigDecimal(2226.524)) :
-                        new BigDecimal(235.9457).multiply(new BigDecimal(age)).add(new BigDecimal(1754.857));
+                        new BigDecimal(-8486.75).add(new BigDecimal(434.375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-6494.75).add(new BigDecimal(310.375).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("5年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(163.1086).multiply(new BigDecimal(age)).add(new BigDecimal(1370.952)) :
-                        new BigDecimal(146.5457).multiply(new BigDecimal(age)).add(new BigDecimal(1083.19));
+                        new BigDecimal(-1840).add(new BigDecimal(94).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-1400).add(new BigDecimal(67).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("10年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(89.67429).multiply(new BigDecimal(age)).add(new BigDecimal(729.8095)) :
-                        new BigDecimal(80.07429).multiply(new BigDecimal(age)).add(new BigDecimal(579.8095));
-            } else if (paymentMethod.equals("15年交")) {
+                        new BigDecimal(-978).add(new BigDecimal(50).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-753.75).add(new BigDecimal(35.875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-587.25).add(new BigDecimal(29.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-433.25).add(new BigDecimal(20.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        // 保30年
+        else if (insurancePeriod.equals("30年")) {
+            if (paymentMethod.equals("趸交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-8229.004).add(new BigDecimal(531.7348).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-6510.508).add(new BigDecimal(380.9697).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(65.97143).multiply(new BigDecimal(age)).add(new BigDecimal(513.7143)) :
-                        new BigDecimal(58.46571).multiply(new BigDecimal(age)).add(new BigDecimal(411.1905));
+                        new BigDecimal(-1776.346).add(new BigDecimal(114.8417).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-1404.07).add(new BigDecimal(82.3153).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-948.1926).add(new BigDecimal(61.09499).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-747.6319).add(new BigDecimal(43.66095).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             } else if (paymentMethod.equals("20年交")) {
                 fee = gender.equals("男") ?
-                        new BigDecimal(54.85714).multiply(new BigDecimal(age)).add(new BigDecimal(401.2381)) :
-                        new BigDecimal(48.41714).multiply(new BigDecimal(age)).add(new BigDecimal(322.9048));
+                        new BigDecimal(-535.8245).add(new BigDecimal(34.75594).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-427.3153).add(new BigDecimal(24.87467).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("30年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-424.0765).add(new BigDecimal(26.87335).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-327.5528).add(new BigDecimal(18.96438).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
             }
         }
-        return fee;
-    }
-
-    private BigDecimal type13(Integer age, String gender, String name, BigDecimal fee) {
-        if (name.equals("福享安康定期重疾险")) {
-            fee = gender.equals("男") ?
-                    new BigDecimal(384).add(new BigDecimal(13.1).multiply(new BigDecimal(age))) :
-                    new BigDecimal(505).add(new BigDecimal(8.7).multiply(new BigDecimal(age)));
+        // 至50岁
+        else if (insurancePeriod.equals("至50岁")) {
+            if (paymentMethod.equals("趸交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(3869.503).subtract(new BigDecimal(36.00596).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(2014.461).subtract(new BigDecimal(17.46647).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(832.0417).subtract(new BigDecimal(7.615499).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(434.0934).subtract(new BigDecimal(3.710879).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(446.0507).subtract(new BigDecimal(4.247395).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(227.2429).subtract(new BigDecimal(1.833085).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(215.5).subtract(new BigDecimal(0.75).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(108.5).subtract(new BigDecimal(0.25).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
         }
-        return fee;
+        // 至60岁
+        else if (insurancePeriod.equals("至60岁")) {
+            if (paymentMethod.equals("趸交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(5887.119).subtract(new BigDecimal(2.996065).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(3246.388).add(new BigDecimal(9.243957).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("2年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(1277.732).subtract(new BigDecimal(0.7588533).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(700.7757).add(new BigDecimal(2.006745).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(667.9202).subtract(new BigDecimal(0.1630129).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(367.8415).add(new BigDecimal(1.155143).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(298.7779).add(new BigDecimal(3.025335).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(167.531).add(new BigDecimal(2.250373).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("30年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(196).add(new BigDecimal(3.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(105).add(new BigDecimal(2.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        // 至70岁
+        else if (insurancePeriod.equals("至70岁")) {
+            if (paymentMethod.equals("趸交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(8795.218).add(new BigDecimal(129.1426).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(5451.137).add(new BigDecimal(103.0999).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(1917.01).add(new BigDecimal(27.44948).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(1184.544).add(new BigDecimal(22.1204).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(993.5714).add(new BigDecimal(15.35714).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(611.5801).add(new BigDecimal(12.22285).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(404.2983).add(new BigDecimal(14.03256).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(240.2545).add(new BigDecimal(10.40419).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("30年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(279.1951).add(new BigDecimal(11.44611).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(169.7271).add(new BigDecimal(8.117326).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    private BigDecimal type14(Integer age, String gender, String insurancePeriod, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("合众定期重疾险")) {
-            if (insurancePeriod.equals("20年")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-1374.5).add(new BigDecimal(101.85).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-1057).add(new BigDecimal(79.4).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-802).add(new BigDecimal(57.3).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-558.5).add(new BigDecimal(42.95).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-579).add(new BigDecimal(41.7).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-434.5).add(new BigDecimal(31.85).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-495).add(new BigDecimal(35).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-366.5).add(new BigDecimal(26.45).multiply(new BigDecimal(age)));
+
+    private ResultEntity<BigDecimal> type6(Integer age, BigDecimal fee, String insurancePeriod) {
+        if (age < 18 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~55之间");
+        }
+        if (insurancePeriod.equals("20年")) {
+            if (age > 18 && age <= 40) {
+                fee = new BigDecimal(2339);
+            }
+            if (age > 40 && age <= 50) {
+                fee = new BigDecimal(2458);
+            }
+            if (age > 50 && age <= 55) {
+                fee = new BigDecimal(2984);
+            }
+        }
+        if (insurancePeriod.equals("30年")) {
+            if (age > 18 && age <= 40) {
+                fee = new BigDecimal(1472);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+
+    private ResultEntity<BigDecimal> type8(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~50之间");
+        }
+        // 至60岁
+        if (insurancePeriod.equals("至60岁")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(134.4336).multiply(new BigDecimal(age)).add(new BigDecimal(805.9708)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(138.9243).multiply(new BigDecimal(age)).add(new BigDecimal(736.2398)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(66.31167).multiply(new BigDecimal(age)).add(new BigDecimal(560.4141)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(68.12841).multiply(new BigDecimal(age)).add(new BigDecimal(530.5551)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(43.43579).multiply(new BigDecimal(age)).add(new BigDecimal(468.8614)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(44.36105).multiply(new BigDecimal(age)).add(new BigDecimal(451.793)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(32.17622).multiply(new BigDecimal(age)).add(new BigDecimal(419.5518)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(32.70488).multiply(new BigDecimal(age)).add(new BigDecimal(407.2073)).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        // 至70岁
+        else if (insurancePeriod.equals("至70岁")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(90.22489).multiply(new BigDecimal(age)).add(new BigDecimal(440.1598)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(101.6416).multiply(new BigDecimal(age)).add(new BigDecimal(349.0765)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(51.79954).multiply(new BigDecimal(age)).add(new BigDecimal(204.1393)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(57.17968).multiply(new BigDecimal(age)).add(new BigDecimal(166.6975)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(33.93669).multiply(new BigDecimal(age)).add(new BigDecimal(212.7637)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(37.17765).multiply(new BigDecimal(age)).add(new BigDecimal(194.337)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(25.11863).multiply(new BigDecimal(age)).add(new BigDecimal(213.2164)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(27.25096).multiply(new BigDecimal(age)).add(new BigDecimal(204.2685)).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        // 至85岁
+        else if (insurancePeriod.equals("至85岁")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(49.31256).multiply(new BigDecimal(age)).add(new BigDecimal(403.1701)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(57.19064).multiply(new BigDecimal(age)).add(new BigDecimal(277.605)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(28.35662).multiply(new BigDecimal(age)).add(new BigDecimal(199.9806)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(32.19155).multiply(new BigDecimal(age)).add(new BigDecimal(137.8265)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(19.14642).multiply(new BigDecimal(age)).add(new BigDecimal(170.8498)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(21.21195).multiply(new BigDecimal(age)).add(new BigDecimal(136.6672)).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(14.49041).multiply(new BigDecimal(age)).add(new BigDecimal(157.3151)).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(15.50137).multiply(new BigDecimal(age)).add(new BigDecimal(135.3836)).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    // 平安福终身寿险
+    private ResultEntity<BigDecimal> type9(Integer age, String gender, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~65之间");
+        }
+        if (paymentMethod.equals("趸交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(543.2694).multiply(new BigDecimal(age)).subtract(new BigDecimal(4834.593)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(15.50137).multiply(new BigDecimal(age)).add(new BigDecimal(135.3836)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("10年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(74.61229).multiply(new BigDecimal(age)).subtract(new BigDecimal(512.8383)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(67.07388).multiply(new BigDecimal(age)).subtract(new BigDecimal(521.4685)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("15年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(54.8098).multiply(new BigDecimal(age)).subtract(new BigDecimal(412.383)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(48.65399).multiply(new BigDecimal(age)).subtract(new BigDecimal(400.3255)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("20年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(46.90746).multiply(new BigDecimal(age)).subtract(new BigDecimal(396.3661)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(40.96928).multiply(new BigDecimal(age)).subtract(new BigDecimal(360.4042)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("30年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(30.08859).multiply(new BigDecimal(age)).subtract(new BigDecimal(131.8172)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(26.06742).multiply(new BigDecimal(age)).subtract(new BigDecimal(124.9438)).setScale(2, RoundingMode.HALF_UP);
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    // 少儿平安福终身寿险
+    private ResultEntity<BigDecimal> type10(Integer age, String gender, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 17) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~17之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(32.03054).multiply(new BigDecimal(age)).add(new BigDecimal(669.3495)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(34.6776).multiply(new BigDecimal(age)).add(new BigDecimal(474.6437)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("15年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(23.4276).multiply(new BigDecimal(age)).add(new BigDecimal(485.8937)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(19.95475).multiply(new BigDecimal(age)).add(new BigDecimal(413.371)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("20年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(19.01018).multiply(new BigDecimal(age)).add(new BigDecimal(388.1165)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(16.13688).multiply(new BigDecimal(age)).add(new BigDecimal(329.6776)).setScale(2, RoundingMode.HALF_UP);
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    // 鑫如意终身寿险
+    private ResultEntity<BigDecimal> type11(Integer age, String gender, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 70) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~70之间");
+        }
+        if (paymentMethod.equals("五年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(61.08333).multiply(new BigDecimal(age)).add(new BigDecimal(16305.83)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(89.44048).multiply(new BigDecimal(age)).add(new BigDecimal(15930.83)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("十年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(46.71429).multiply(new BigDecimal(age)).add(new BigDecimal(8790)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(46.53571).multiply(new BigDecimal(age)).add(new BigDecimal(8576.786)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("二十年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(26.34286).multiply(new BigDecimal(age)).add(new BigDecimal(5271.429)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(26.34286).multiply(new BigDecimal(age)).add(new BigDecimal(5151.429)).setScale(2, RoundingMode.HALF_UP);
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    // 一生保终身寿险
+    private ResultEntity<BigDecimal> type12(Integer age, String gender, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~50之间");
+        }
+        if (paymentMethod.equals("趸交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(757.3143).multiply(new BigDecimal(age)).add(new BigDecimal(5271.429)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(683.6543).multiply(new BigDecimal(age)).add(new BigDecimal(5113.476)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("3年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(261.9657).multiply(new BigDecimal(age)).add(new BigDecimal(2226.524)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(235.9457).multiply(new BigDecimal(age)).add(new BigDecimal(1754.857)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("5年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(163.1086).multiply(new BigDecimal(age)).add(new BigDecimal(1370.952)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(146.5457).multiply(new BigDecimal(age)).add(new BigDecimal(1083.19)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("10年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(89.67429).multiply(new BigDecimal(age)).add(new BigDecimal(729.8095)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(80.07429).multiply(new BigDecimal(age)).add(new BigDecimal(579.8095)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("15年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(65.97143).multiply(new BigDecimal(age)).add(new BigDecimal(513.7143)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(58.46571).multiply(new BigDecimal(age)).add(new BigDecimal(411.1905)).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("20年交")) {
+            fee = gender.equals("男") ?
+                    new BigDecimal(54.85714).multiply(new BigDecimal(age)).add(new BigDecimal(401.2381)).setScale(2, RoundingMode.HALF_UP) :
+                    new BigDecimal(48.41714).multiply(new BigDecimal(age)).add(new BigDecimal(322.9048)).setScale(2, RoundingMode.HALF_UP);
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type13(Integer age, String gender, BigDecimal fee) {
+        if (age < 0 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~50之间");
+        }
+        fee = gender.equals("男") ?
+                new BigDecimal(384).add(new BigDecimal(13.1).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                new BigDecimal(505).add(new BigDecimal(8.7).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type14(Integer age, String gender, String insurancePeriod, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~50之间");
+        }
+        if (insurancePeriod.equals("20年")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-1374.5).add(new BigDecimal(101.85).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-1057).add(new BigDecimal(79.4).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-802).add(new BigDecimal(57.3).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-558.5).add(new BigDecimal(42.95).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-579).add(new BigDecimal(41.7).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-434.5).add(new BigDecimal(31.85).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-495).add(new BigDecimal(35).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-366.5).add(new BigDecimal(26.45).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        } else if (insurancePeriod.equals("30年")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-1067.5).add(new BigDecimal(117.1).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-840).add(new BigDecimal(93.2).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-585).add(new BigDecimal(63.65).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-462.5).add(new BigDecimal(50.65).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-425).add(new BigDecimal(45.8).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-332.5).add(new BigDecimal(36.25).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(-355).add(new BigDecimal(37.45).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(-275).add(new BigDecimal(29.45).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        } else if (insurancePeriod.equals("至60岁")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(1444).add(new BigDecimal(11.7).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(1189.5).add(new BigDecimal(8.25).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(759.5).add(new BigDecimal(7.15).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(629).add(new BigDecimal(4.9).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(460).add(new BigDecimal(9).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(372.5).add(new BigDecimal(7.1).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(362.5).add(new BigDecimal(7.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(290).add(new BigDecimal(6.05).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        } else if (insurancePeriod.equals("至70岁")) {
+            if (paymentMethod.equals("5年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(1727.5).add(new BigDecimal(57.75).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(1440.5).add(new BigDecimal(43.35).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("10年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(895.5).add(new BigDecimal(32.95).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(752.5).add(new BigDecimal(24.45).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("15年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(597).add(new BigDecimal(25.2).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(511.5).add(new BigDecimal(18.35).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            } else if (paymentMethod.equals("20年交")) {
+                fee = gender.equals("男") ?
+                        new BigDecimal(440.5).add(new BigDecimal(22.05).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                        new BigDecimal(389).add(new BigDecimal(15.7).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+
+    private ResultEntity<BigDecimal> type15(Integer age, BigDecimal fee) {
+        if (age < 0 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~65之间");
+        }
+        fee = new BigDecimal(-7472.6).add(new BigDecimal(925.3077).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type16(Integer age, String gender, BigDecimal fee) {
+        if (age < 0 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~55之间");
+        }
+        fee = gender.equals("男") ?
+                new BigDecimal(-895.3).add(new BigDecimal(48.27273).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                new BigDecimal(-668.5).add(new BigDecimal(41.86364).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+
+    private ResultEntity<BigDecimal> type17(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~55之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(635) : new BigDecimal(730);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(750) : new BigDecimal(840);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(880) : new BigDecimal(955);
+            }
+            if (age > 41 && age <= 48) {
+                fee = new BigDecimal(1070);
+            }
+            if (age > 48 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(1305) : new BigDecimal(1150);
+            }
+        }
+
+        if (paymentMethod.equals("15年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(445) : new BigDecimal(515);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(530) : new BigDecimal(595);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(635) : new BigDecimal(690);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(820) : new BigDecimal(800);
+            }
+            if (age > 48 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(1070) : new BigDecimal(895);
+            }
+        }
+
+        if (paymentMethod.equals("20年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(360) : new BigDecimal(410);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(430) : new BigDecimal(480);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(535) : new BigDecimal(575);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(735) : new BigDecimal(690);
+            }
+            if (age > 48 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(1005) : new BigDecimal(805);
+            }
+        }
+
+        if (paymentMethod.equals("30年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(270) : new BigDecimal(310);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(340) : new BigDecimal(375);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(460) : new BigDecimal(470);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(685) : new BigDecimal(470);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //乐享福重疾险 0-12/13-25/26-38/39-51/52-64
+    private ResultEntity<BigDecimal> type18(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 64) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~64之间");
+        }
+        if (paymentMethod.equals("趸交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(14605) : new BigDecimal(13820);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(21450) : new BigDecimal(20030);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(32180) : new BigDecimal(29485);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(47735) : new BigDecimal(42830);
+            }
+            if (age > 51 && age <= 64) {
+                fee = gender.equals("男") ? new BigDecimal(66960) : new BigDecimal(59400);
+            }
+        }
+        if (paymentMethod.equals("5年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(3245) : new BigDecimal(3075);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(4765) : new BigDecimal(4455);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(7165) : new BigDecimal(6565);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(10700) : new BigDecimal(9600);
+            }
+            if (age > 51 && age <= 64) {
+                fee = gender.equals("男") ? new BigDecimal(15655) : new BigDecimal(13595);
+            }
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(1705) : new BigDecimal(1615);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(2505) : new BigDecimal(2340);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(3770) : new BigDecimal(3460);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(5700) : new BigDecimal(5110);
+            }
+            if (age > 51 && age <= 64) {
+                fee = gender.equals("男") ? new BigDecimal(8895) : new BigDecimal(7450);
+            }
+        }
+        if (paymentMethod.equals("15年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(1240) : new BigDecimal(1175);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(1820) : new BigDecimal(1705);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(2750) : new BigDecimal(2525);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(4235) : new BigDecimal(3780);
+            }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(1065) : new BigDecimal(1010);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(1565) : new BigDecimal(1465);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(2375) : new BigDecimal(2185);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(3785) : new BigDecimal(3325);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //平安福重疾险 18-25/26-33/34-41/42-48/49-55
+    private ResultEntity<BigDecimal> type19(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~55之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(580) : new BigDecimal(660);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(725) : new BigDecimal(800);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(905) : new BigDecimal(960);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(1150) : new BigDecimal(1120);
+            }
+            if (age > 48 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(1410) : new BigDecimal(1230);
+            }
+        }
+        if (paymentMethod.equals("15年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(410) : new BigDecimal(465);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(515) : new BigDecimal(565);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(650) : new BigDecimal(690);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(860) : new BigDecimal(825);
+            }
+            if (age > 48 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(1115) : new BigDecimal(935);
+            }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(340) : new BigDecimal(390);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(435) : new BigDecimal(480);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(560) : new BigDecimal(590);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(780) : new BigDecimal(725);
+            }
+            if (age > 48 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(1060) : new BigDecimal(855);
+            }
+        }
+        if (paymentMethod.equals("30年交")) {
+            if (age > 18 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(270) : new BigDecimal(305);
+            }
+            if (age > 25 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(350) : new BigDecimal(385);
+            }
+            if (age > 33 && age <= 41) {
+                fee = gender.equals("男") ? new BigDecimal(485) : new BigDecimal(490);
+            }
+            if (age > 41 && age <= 48) {
+                fee = gender.equals("男") ? new BigDecimal(720) : new BigDecimal(635);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //少儿重疾险 0-3/4-7/8-11/12-15/16-17
+    private ResultEntity<BigDecimal> type20(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 17) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~17之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (age > 0 && age <= 3) {
+                fee = gender.equals("男") ? new BigDecimal(775) : new BigDecimal(700);
+            }
+            if (age > 3 && age <= 7) {
+                fee = gender.equals("男") ? new BigDecimal(870) : new BigDecimal(785);
+            }
+            if (age > 7 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(980) : new BigDecimal(880);
+            }
+            if (age > 11 && age <= 15) {
+                fee = gender.equals("男") ? new BigDecimal(1110) : new BigDecimal(990);
+            }
+            if (age > 15 && age <= 17) {
+                fee = gender.equals("男") ? new BigDecimal(1255) : new BigDecimal(1115);
+            }
+        }
+
+        if (paymentMethod.equals("15年交")) {
+            if (age > 0 && age <= 3) {
+                fee = gender.equals("男") ? new BigDecimal(555) : new BigDecimal(505);
+            }
+            if (age > 3 && age <= 7) {
+                fee = gender.equals("男") ? new BigDecimal(625) : new BigDecimal(565);
+            }
+            if (age > 7 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(705) : new BigDecimal(635);
+            }
+            if (age > 11 && age <= 15) {
+                fee = gender.equals("男") ? new BigDecimal(795) : new BigDecimal(710);
+            }
+            if (age > 15 && age <= 17) {
+                fee = gender.equals("男") ? new BigDecimal(900) : new BigDecimal(800);
+            }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (age > 0 && age <= 3) {
+                fee = gender.equals("男") ? new BigDecimal(450) : new BigDecimal(410);
+            }
+            if (age > 3 && age <= 7) {
+                fee = gender.equals("男") ? new BigDecimal(510) : new BigDecimal(460);
+            }
+            if (age > 7 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(575) : new BigDecimal(515);
+            }
+            if (age > 11 && age <= 15) {
+                fee = gender.equals("男") ? new BigDecimal(650) : new BigDecimal(580);
+            }
+            if (age > 15 && age <= 17) {
+                fee = gender.equals("男") ? new BigDecimal(735) : new BigDecimal(655);
+            }
+        }
+        if (paymentMethod.equals("交至18岁")) {
+            if (age > 0 && age <= 3) {
+                fee = gender.equals("男") ? new BigDecimal(480) : new BigDecimal(435);
+            }
+            if (age > 3 && age <= 7) {
+                fee = gender.equals("男") ? new BigDecimal(650) : new BigDecimal(585);
+            }
+            if (age > 7 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(980) : new BigDecimal(880);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //乐安康终身重疾险 0-12/13-25/26-38/39-51/52-64
+    private ResultEntity<BigDecimal> type21(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 64) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~64之间");
+        }
+        if (paymentMethod.equals("趸交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(5880) : new BigDecimal(5265);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(8830) : new BigDecimal(7845);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(13260) : new BigDecimal(11750);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(19540) : new BigDecimal(17265);
+            }
+            if (age > 51 && age <= 64) {
+                fee = gender.equals("男") ? new BigDecimal(27470) : new BigDecimal(24295);
+            }
+        }
+        if (paymentMethod.equals("5年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(1320) : new BigDecimal(1185);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(1985) : new BigDecimal(1765);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(2985) : new BigDecimal(2645);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(4425) : new BigDecimal(3905);
+            }
+            if (age > 51 && age <= 64) {
+                fee = gender.equals("男") ? new BigDecimal(6340) : new BigDecimal(5555);
+            }
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(795) : new BigDecimal(710);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(1195) : new BigDecimal(1060);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(1800) : new BigDecimal(1595);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(2695) : new BigDecimal(2375);
+            }
+            if (age > 51 && age <= 64) {
+                fee = gender.equals("男") ? new BigDecimal(3445) : new BigDecimal(4015);
+            }
+        }
+        if (paymentMethod.equals("15年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(580) : new BigDecimal(520);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(870) : new BigDecimal(775);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(1320) : new BigDecimal(1165);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(2005) : new BigDecimal(1755);
+            }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (age > 0 && age <= 12) {
+                fee = gender.equals("男") ? new BigDecimal(480) : new BigDecimal(425);
+            }
+            if (age > 12 && age <= 25) {
+                fee = gender.equals("男") ? new BigDecimal(720) : new BigDecimal(640);
+            }
+            if (age > 25 && age <= 38) {
+                fee = gender.equals("男") ? new BigDecimal(1095) : new BigDecimal(970);
+            }
+            if (age > 38 && age <= 51) {
+                fee = gender.equals("男") ? new BigDecimal(1700) : new BigDecimal(1475);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //0-11/12-22/23-33/34-44/45-55
+    private ResultEntity<BigDecimal> type22(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~55之间");
+        }
+        if (paymentMethod.equals("趸交")) {
+            if (age > 0 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(12000) : new BigDecimal(10690);
+            }
+            if (age > 11 && age <= 22) {
+                fee = gender.equals("男") ? new BigDecimal(17310) : new BigDecimal(15300);
+            }
+            if (age > 22 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(24320) : new BigDecimal(21390);
+            }
+            if (age > 33 && age <= 44) {
+                fee = gender.equals("男") ? new BigDecimal(33940) : new BigDecimal(29880);
+            }
+            if (age > 44 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(46530) : new BigDecimal(40640);
+            }
+        }
+        if (paymentMethod.equals("5年交")) {
+            if (age > 0 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(2680) : new BigDecimal(2390);
+            }
+            if (age > 11 && age <= 22) {
+                fee = gender.equals("男") ? new BigDecimal(3840) : new BigDecimal(3390);
+            }
+            if (age > 22 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(5360) : new BigDecimal(4710);
+            }
+            if (age > 33 && age <= 44) {
+                fee = gender.equals("男") ? new BigDecimal(7490) : new BigDecimal(6600);
+            }
+            if (age > 44 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(10400) : new BigDecimal(9050);
+            }
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (age > 0 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(1520) : new BigDecimal(1360);
+            }
+            if (age > 11 && age <= 22) {
+                fee = gender.equals("男") ? new BigDecimal(2170) : new BigDecimal(1920);
+            }
+            if (age > 22 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(3040) : new BigDecimal(2670);
+            }
+            if (age > 33 && age <= 44) {
+                fee = gender.equals("男") ? new BigDecimal(4280) : new BigDecimal(3770);
+            }
+            if (age > 44 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(6070) : new BigDecimal(5230);
+            }
+        }
+        if (paymentMethod.equals("15年交")) {
+            if (age > 0 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(1110) : new BigDecimal(990);
+            }
+            if (age > 11 && age <= 22) {
+                fee = gender.equals("男") ? new BigDecimal(1580) : new BigDecimal(1400);
+            }
+            if (age > 22 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(2220) : new BigDecimal(1950);
+            }
+            if (age > 33 && age <= 44) {
+                fee = gender.equals("男") ? new BigDecimal(3140) : new BigDecimal(2760);
+            }
+            if (age > 44 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(4570) : new BigDecimal(3890);
+            }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (age > 0 && age <= 11) {
+                fee = gender.equals("男") ? new BigDecimal(880) : new BigDecimal(790);
+            }
+            if (age > 11 && age <= 22) {
+                fee = gender.equals("男") ? new BigDecimal(1260) : new BigDecimal(1110);
+            }
+            if (age > 22 && age <= 33) {
+                fee = gender.equals("男") ? new BigDecimal(1770) : new BigDecimal(1560);
+            }
+            if (age > 33 && age <= 44) {
+                fee = gender.equals("男") ? new BigDecimal(2540) : new BigDecimal(2230);
+            }
+            if (age > 44 && age <= 55) {
+                fee = gender.equals("男") ? new BigDecimal(3800) : new BigDecimal(3180);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type25(Integer age, BigDecimal fee) {
+        if (age < 0 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~65之间");
+        }
+        fee = new BigDecimal(-187.28).add(new BigDecimal(68.76).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type26(Integer age, String gender, BigDecimal fee) {
+        if (age < 18 || age > 50) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~50之间");
+        }
+        fee = gender.equals("男") ?
+                new BigDecimal(-187.5125).add(new BigDecimal(11.90625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP) :
+                new BigDecimal(-185.115).add(new BigDecimal(11.9475).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type27(Integer age, BigDecimal fee) {
+        if (age < 0 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~65之间");
+        }
+        fee = new BigDecimal(310);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type28(Integer age, BigDecimal fee) {
+        if (age < 0 || age > 80) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~80之间");
+        }
+        fee = new BigDecimal(0.8);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type29(Integer age, String paymentMethod, BigDecimal fee) {
+        if (age < 18 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~65之间");
+        }
+        if (paymentMethod.equals("趸交")) {
+            fee = new BigDecimal(4209.085).subtract(new BigDecimal(46.58631).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("10年交")) {
+            fee = new BigDecimal(531.6).subtract(new BigDecimal(3.95).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("15年交")) {
+            fee = new BigDecimal(374.9).subtract(new BigDecimal(2.8).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("20年交")) {
+            fee = new BigDecimal(298.5).subtract(new BigDecimal(2).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("30年交")) {
+            fee = new BigDecimal(211).subtract(new BigDecimal(0.75).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type30(Integer age, String paymentMethod, BigDecimal fee) {
+        if (age < 0 || age > 17) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~17之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            fee = new BigDecimal(306.375).add(new BigDecimal(4.625).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("15年交")) {
+            fee = new BigDecimal(210.5).add(new BigDecimal(3.5).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        } else if (paymentMethod.equals("20年交")) {
+            fee = new BigDecimal(175.125).add(new BigDecimal(2.875).multiply(new BigDecimal(age))).setScale(2, RoundingMode.HALF_UP);
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type31(Integer age, BigDecimal fee) {
+        if (age < 0 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~65之间");
+        }
+        fee = new BigDecimal(55);
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //    意安心人身意外险
+    private ResultEntity<BigDecimal> type32(Integer age, BigDecimal fee, BigDecimal insuranceAmount) {
+        if (age < 0 || age > 63) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~63之间");
+        }
+        if (insuranceAmount.compareTo(BigDecimal.valueOf(500000)) == 0) {
+            if (age > 0 && age <= 50) {
+                fee = new BigDecimal(2100);
+            }
+            if (age > 50 && age <= 60) {
+                fee = new BigDecimal(2850);
+            }
+            if (age > 60 && age <= 63) {
+                fee = new BigDecimal(3375);
+            }
+        }
+        if (insuranceAmount.compareTo(BigDecimal.valueOf(600000)) == 0) {
+            if (age > 0 && age <= 50) {
+                fee = new BigDecimal(2520);
+            }
+            if (age > 50 && age <= 60) {
+                fee = new BigDecimal(3420);
+            }
+            if (age > 60 && age <= 63) {
+                fee = new BigDecimal(4050);
+            }
+
+        }
+        if (insuranceAmount.compareTo(BigDecimal.valueOf(750000)) == 0) {
+            if (age > 0 && age <= 50) {
+                fee = new BigDecimal(3150);
+            }
+            if (age > 50 && age <= 60) {
+                fee = new BigDecimal(4275);
+            }
+            if (age > 60 && age <= 63) {
+                fee = new BigDecimal(5062.5);
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    private ResultEntity<BigDecimal> type33(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 18 || age > 55) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在18~55之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(1955);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(2335);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(2815);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(3400);
+                }
+                if (age > 48 && age <= 55) {
+                    fee = new BigDecimal(4000);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(1765);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(2125);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(2570);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(3110);
+                }
+                if (age > 48 && age <= 55) {
+                    fee = new BigDecimal(3675);
+                }
+            }
+        }
+        if (paymentMethod.equals("15年交")) {
+            if (gender.equals("男")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(1335);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(1600);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(1930);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(2340);
+                }
+                if (age > 48 && age <= 55) {
+                    fee = new BigDecimal(2785);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(1205);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(1455);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(1760);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(2135);
+                }
+                if (age > 48 && age <= 55) {
+                    fee = new BigDecimal(2535);
+                }
+            }
+        }
+
+        if (paymentMethod.equals("20年交")) {
+            if (gender.equals("男")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(1055);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(1265);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(1535);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(1875);
+                }
+                if (age > 48 && age <= 55) {
+                    fee = new BigDecimal(2255);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(950);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(1150);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(1395);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(1700);
+                }
+                if (age > 48 && age <= 55) {
+                    fee = new BigDecimal(2040);
+                }
+            }
+        }
+        if (paymentMethod.equals("30年交")) {
+            if (gender.equals("男")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(765);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(925);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(1130);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(1410);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 18 && age <= 25) {
+                    fee = new BigDecimal(690);
+                }
+                if (age > 25 && age <= 33) {
+                    fee = new BigDecimal(835);
+                }
+                if (age > 33 && age <= 41) {
+                    fee = new BigDecimal(1020);
+                }
+                if (age > 41 && age <= 48) {
+                    fee = new BigDecimal(1265);
+                }
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
+    }
+
+    //0-3/4-7/8-11/12-15/16-17
+    private ResultEntity<BigDecimal> type34(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 17) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~17之间");
+        }
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(12190);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(12340);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(12515);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(12720);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(12965);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(12025);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(12165);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(12320);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(12500);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(12715);
+                }
+            }
+        }
+        if (paymentMethod.equals("15年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(8570);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(8675);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(8805);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(8955);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(9130);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(8450);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(8550);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(8665);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(8795);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(8945);
+                }
+            }
+        }
+
+        if (paymentMethod.equals("20年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(6825);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(6915);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(7020);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(7145);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(7290);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(6730);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(6810);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(6905);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(7015);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(7135);
+                }
+            }
+        }
+        if (paymentMethod.equals("交至18岁")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(7340);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(9050);
                 }
-            } else if (insurancePeriod.equals("30年")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-1067.5).add(new BigDecimal(117.1).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-840).add(new BigDecimal(93.2).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-585).add(new BigDecimal(63.65).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-462.5).add(new BigDecimal(50.65).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-425).add(new BigDecimal(45.8).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-332.5).add(new BigDecimal(36.25).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(-355).add(new BigDecimal(37.45).multiply(new BigDecimal(age))) :
-                            new BigDecimal(-275).add(new BigDecimal(29.45).multiply(new BigDecimal(age)));
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(12515);
                 }
-            } else if (insurancePeriod.equals("至60岁")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(1444).add(new BigDecimal(11.7).multiply(new BigDecimal(age))) :
-                            new BigDecimal(1189.5).add(new BigDecimal(8.25).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(759.5).add(new BigDecimal(7.15).multiply(new BigDecimal(age))) :
-                            new BigDecimal(629).add(new BigDecimal(4.9).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(460).add(new BigDecimal(9).multiply(new BigDecimal(age))) :
-                            new BigDecimal(372.5).add(new BigDecimal(7.1).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(362.5).add(new BigDecimal(7.5).multiply(new BigDecimal(age))) :
-                            new BigDecimal(290).add(new BigDecimal(6.05).multiply(new BigDecimal(age)));
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(7240);
                 }
-            } else if (insurancePeriod.equals("至70岁")) {
-                if (paymentMethod.equals("5年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(1727.5).add(new BigDecimal(57.75).multiply(new BigDecimal(age))) :
-                            new BigDecimal(1440.5).add(new BigDecimal(43.35).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("10年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(895.5).add(new BigDecimal(32.95).multiply(new BigDecimal(age))) :
-                            new BigDecimal(752.5).add(new BigDecimal(24.45).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("15年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(597).add(new BigDecimal(25.2).multiply(new BigDecimal(age))) :
-                            new BigDecimal(511.5).add(new BigDecimal(18.35).multiply(new BigDecimal(age)));
-                } else if (paymentMethod.equals("20年交")) {
-                    fee = gender.equals("男") ?
-                            new BigDecimal(440.5).add(new BigDecimal(22.05).multiply(new BigDecimal(age))) :
-                            new BigDecimal(389).add(new BigDecimal(15.7).multiply(new BigDecimal(age)));
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(8920);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(12320);
                 }
             }
         }
-        return fee;
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    //四、抗癌卫士医疗险
-    //Fee=-895.3+48.27273*age男
-    //Fee=-668.5+41.86364*age 女
-    //
-    //五、安康住院费用医疗保险
-    //
-    //Fee=-187.28+68.76*age男
-    //Fee=-187.28+68.76*age 女
-    //六、真爱关心住院险
-    //Fee=-187.5125+11.90625*age男
-    //Fee=-185.115+11.9475*age 女
-    private BigDecimal type15(Integer age, String name, BigDecimal fee) {
-        if (name.equals("平安尊优人生全球医疗保险")) {
-            return new BigDecimal(-7472.6).add(new BigDecimal(925.3077).multiply(new BigDecimal(age)));
+    private ResultEntity<BigDecimal> type35(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 17) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~17之间");
         }
-        return fee;
-    }
-
-    private BigDecimal type16(Integer age, String gender, String name, BigDecimal fee) {
-        if (name.equals("抗癌卫士医疗险")) {
-            fee = gender.equals("男") ?
-                    new BigDecimal(-895.3).add(new BigDecimal(48.27273).multiply(new BigDecimal(age))) :
-                    new BigDecimal(-668.5).add(new BigDecimal(41.86364).multiply(new BigDecimal(age)));
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(33055);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(33330);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(33700);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(34160);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(34735);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(32520);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(32720);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(32995);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(33340);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(33775);
+                }
+            }
         }
-        return fee;
-    }
-
-
-    //todo 终身重疾险所属产品暂无公式
-
 
-    private BigDecimal type25(Integer age, String name, BigDecimal fee) {
-        if (name.equals("安康住院费用医疗保险")) {
-            fee = new BigDecimal(-187.28).add(new BigDecimal(68.76).multiply(new BigDecimal(age)));
+        if (paymentMethod.equals("20年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(19635);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(19985);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(20440);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(21020);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(21780);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(19280);
+                }
+                if (age > 3 && age <= 7) {
+                    fee = new BigDecimal(19580);
+                }
+                if (age > 7 && age <= 11) {
+                    fee = new BigDecimal(19970);
+                }
+                if (age > 11 && age <= 15) {
+                    fee = new BigDecimal(20470);
+                }
+                if (age > 15 && age <= 17) {
+                    fee = new BigDecimal(21125);
+                }
+            }
         }
-        return fee;
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    private BigDecimal type26(Integer age, String gender, String name, BigDecimal fee) {
-        if (name.equals("真爱关心住院险")) {
-            fee = gender.equals("男") ?
-                    new BigDecimal(-187.5125).add(new BigDecimal(11.90625).multiply(new BigDecimal(age))) :
-                    new BigDecimal(-185.115).add(new BigDecimal(11.9475).multiply(new BigDecimal(age)));
+    private ResultEntity<BigDecimal> type36(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 60) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~60之间");
         }
-        return fee;
-    }
-
-    private BigDecimal type27(String name, BigDecimal fee) {
-        if (name.equals("交通意外险")) {
-            fee = new BigDecimal(310);
+        if (paymentMethod.equals("5年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(19075);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(19465);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(20075);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(20860);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(21970);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(18960);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(19345);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(19920);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(20680);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(21725);
+                }
+            }
         }
-        return fee;
-    }
 
-    private BigDecimal type28(String name, BigDecimal fee) {
-        if (name.equals("旅行意外险")) {
-            fee = new BigDecimal(0.8);
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(10130);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(10345);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(10690);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(11140);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(11865);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(10070);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(10280);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(10600);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(11020);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(11660);
+                }
+            }
         }
-        return fee;
-    }
-
-    private BigDecimal type29(Integer age, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("长期意外伤害险")) {
-            if (paymentMethod.equals("趸交")) {
-                fee = new BigDecimal(4209.085).subtract(new BigDecimal(46.58631).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("10年交")) {
-                fee = new BigDecimal(531.6).subtract(new BigDecimal(3.95).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("15年交")) {
-                fee = new BigDecimal(374.9).subtract(new BigDecimal(2.8).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("20年交")) {
-                fee = new BigDecimal(298.5).subtract(new BigDecimal(2).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("30年交")) {
-                fee = new BigDecimal(211).subtract(new BigDecimal(0.75).multiply(new BigDecimal(age)));
+        if (paymentMethod.equals("15年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(7145);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(7310);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(7560);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(7910);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(8540);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(7100);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(7255);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(7490);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(7805);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(8335);
+                }
             }
         }
-        return fee;
-    }
-
-    private BigDecimal type30(Integer age, String paymentMethod, String name, BigDecimal fee) {
-        if (name.equals("少儿长期意外伤害保险")) {
-            if (paymentMethod.equals("10年交")) {
-                fee = new BigDecimal(306.375).add(new BigDecimal(4.625).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("15年交")) {
-                fee = new BigDecimal(210.5).add(new BigDecimal(3.5).multiply(new BigDecimal(age)));
-            } else if (paymentMethod.equals("20年交")) {
-                fee = new BigDecimal(175.125).add(new BigDecimal(2.875).multiply(new BigDecimal(age)));
+        if (paymentMethod.equals("20年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(5675);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(5820);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(6030);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(6345);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(6970);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(5645);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(5775);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(5960);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(6240);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(6745);
+                }
             }
         }
-        return fee;
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    private BigDecimal type31(String name, BigDecimal fee) {
-        if (name.equals("优乐保人身意外伤害保险")) {
-            fee = new BigDecimal(55);
+    private ResultEntity<BigDecimal> type37(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 65) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~65之间");
         }
-        return fee;
-    }
-
-    //    意安心人身意外险
-    private BigDecimal type32(Integer age, String name, BigDecimal fee, BigDecimal insuranceAmount) {
-        if (name.equals("意安心人身意外险")) {
-            if (insuranceAmount.compareTo(BigDecimal.valueOf(500000)) == 0) {
-                if (age > 0 && age <= 50) {
-                    fee = new BigDecimal(2100);
+        if (paymentMethod.equals("趸交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(11265);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(14680);
                 }
-                if (age > 50 && age <= 60) {
-                    fee = new BigDecimal(2850);
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(19625);
                 }
-                if (age > 60 && age <= 63) {
-                    fee = new BigDecimal(3375);
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(26360);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(34705);
                 }
             }
-            if (insuranceAmount.compareTo(BigDecimal.valueOf(600000)) == 0) {
-                if (age > 0 && age <= 50) {
-                    fee = new BigDecimal(2520);
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(10055);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(13180);
                 }
-                if (age > 50 && age <= 60) {
-                    fee = new BigDecimal(3420);
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(17855);
                 }
-                if (age > 60 && age <= 63) {
-                    fee = new BigDecimal(4050);
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(24190);
                 }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(32280);
+                }
+            }
+        }
 
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(1410);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(1830);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(2450);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(3315);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(4490);
+                }
             }
-            if (insuranceAmount.compareTo(BigDecimal.valueOf(750000)) == 0) {
-                if (age > 0 && age <= 50) {
-                    fee = new BigDecimal(3150);
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(1255);
                 }
-                if (age > 50 && age <= 60) {
-                    fee = new BigDecimal(4275);
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(1640);
                 }
-                if (age > 60 && age <= 63) {
-                    fee = new BigDecimal(5062.5);
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(2225);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(3025);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(4115);
                 }
             }
         }
-        return fee;
-    }
-
-    private BigDecimal type33(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("护身福终身寿险(分红型)")) {
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(1955);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(2335);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(2815);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(3400);
-                    }
-                    if (age > 48 && age <= 55) {
-                        fee = new BigDecimal(4000);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(1765);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(2125);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(2570);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(3110);
-                    }
-                    if (age > 48 && age <= 55) {
-                        fee = new BigDecimal(3675);
-                    }
-                }
-            }
-            if (paymentMethod.equals("15年交")) {
-                if (gender.equals("男")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(1335);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(1600);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(1930);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(2340);
-                    }
-                    if (age > 48 && age <= 55) {
-                        fee = new BigDecimal(2785);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(1205);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(1455);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(1760);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(2135);
-                    }
-                    if (age > 48 && age <= 55) {
-                        fee = new BigDecimal(2535);
-                    }
+        if (paymentMethod.equals("15年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(960);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(1245);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(1670);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(2270);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(3145);
                 }
             }
-
-            if (paymentMethod.equals("20年交")) {
-                if (gender.equals("男")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(1055);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(1265);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(1535);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(1875);
-                    }
-                    if (age > 48 && age <= 55) {
-                        fee = new BigDecimal(2255);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(950);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(1150);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(1395);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(1700);
-                    }
-                    if (age > 48 && age <= 55) {
-                        fee = new BigDecimal(2040);
-                    }
-                }
-            }
-            if (paymentMethod.equals("30年交")) {
-                if (gender.equals("男")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(765);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(925);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(1130);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(1410);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 18 && age <= 25) {
-                        fee = new BigDecimal(690);
-                    }
-                    if (age > 25 && age <= 33) {
-                        fee = new BigDecimal(835);
-                    }
-                    if (age > 33 && age <= 41) {
-                        fee = new BigDecimal(1020);
-                    }
-                    if (age > 41 && age <= 48) {
-                        fee = new BigDecimal(1265);
-                    }
-                }
-            }
-        }
-        return fee;
-    }
-
-    //0-3/4-7/8-11/12-15/16-17
-    private BigDecimal type34(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("世纪天使分红保险")) {
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(12190);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(12340);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(12515);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(12720);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(12965);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(12025);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(12165);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(12320);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(12500);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(12715);
-                    }
-                }
-            }
-            if (paymentMethod.equals("15年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(8570);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(8675);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(8805);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(8955);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(9130);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(8450);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(8550);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(8665);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(8795);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(8945);
-                    }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(855);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(1115);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(1515);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(2070);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(2855);
                 }
             }
-
-            if (paymentMethod.equals("20年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(6825);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(6915);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(7020);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(7145);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(7290);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(6730);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(6810);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(6905);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(7015);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(7135);
-                    }
-                }
-            }
-            if (paymentMethod.equals("交至18岁")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(7340);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(9050);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(12515);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(7240);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(8920);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(12320);
-                    }
-                }
-            }
-        }
-        return fee;
-    }
-
-    private BigDecimal type35(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("守护星少儿两全保险")) {
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(33055);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(33330);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(33700);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(34160);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(34735);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(32520);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(32720);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(32995);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(33340);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(33775);
-                    }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(760);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(985);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(1320);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(1815);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(2585);
                 }
             }
-
-            if (paymentMethod.equals("20年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(19635);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(19985);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(20440);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(21020);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(21780);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(19280);
-                    }
-                    if (age > 3 && age <= 7) {
-                        fee = new BigDecimal(19580);
-                    }
-                    if (age > 7 && age <= 11) {
-                        fee = new BigDecimal(19970);
-                    }
-                    if (age > 11 && age <= 15) {
-                        fee = new BigDecimal(20470);
-                    }
-                    if (age > 15 && age <= 17) {
-                        fee = new BigDecimal(21125);
-                    }
-                }
-            }
-        }
-        return fee;
-    }
-
-    private BigDecimal type36(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("鑫利两全保险(分红型)")) {
-            if (paymentMethod.equals("5年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(19075);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(19465);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(20075);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(20860);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(21970);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(18960);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(19345);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(19920);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(20680);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(21725);
-                    }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(675);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(880);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(1195);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(1645);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(2320);
                 }
             }
-
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(10130);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(10345);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(10690);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(11140);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(11865);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(10070);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(10280);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(10600);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(11020);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(11660);
-                    }
-                }
-            }
-            if (paymentMethod.equals("15年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(7145);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(7310);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(7560);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(7910);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(8540);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(7100);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(7255);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(7490);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(7805);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(8335);
-                    }
-                }
-            }
-            if (paymentMethod.equals("20年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(5675);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(5820);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(6030);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(6345);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(6970);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(5645);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(5775);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(5960);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(6240);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(6745);
-                    }
-                }
-            }
-        }
-        return fee;
-    }
-
-    private BigDecimal type37(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("鑫盛2012终身寿险(分红型)")) {
-            if (paymentMethod.equals("趸交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(11265);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(14680);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(19625);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(26360);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(34705);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(10055);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(13180);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(17855);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(24190);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(32280);
-                    }
+        }
+        if (paymentMethod.equals("30年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(550);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(715);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(965);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(1360);
                 }
             }
-
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(1410);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(1830);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(2450);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(3315);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(4490);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(1255);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(1640);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(2225);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(3025);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(4115);
-                    }
-                }
-            }
-            if (paymentMethod.equals("15年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(960);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(1245);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(1670);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(2270);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(3145);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(855);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(1115);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(1515);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(2070);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(2855);
-                    }
-                }
-            }
-            if (paymentMethod.equals("20年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(760);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(985);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(1320);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(1815);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(2585);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(675);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(880);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(1195);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(1645);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(2320);
-                    }
-                }
-            }
-            if (paymentMethod.equals("30年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(550);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(715);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(965);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(1360);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(490);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(640);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(870);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(1220);
-                    }
-                }
-            }
-            if (paymentMethod.equals("终身交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(335);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(470);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(700);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(1130);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(1960);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 12) {
-                        fee = new BigDecimal(290);
-                    }
-                    if (age > 12 && age <= 25) {
-                        fee = new BigDecimal(410);
-                    }
-                    if (age > 25 && age <= 38) {
-                        fee = new BigDecimal(615);
-                    }
-                    if (age > 38 && age <= 51) {
-                        fee = new BigDecimal(975);
-                    }
-                    if (age > 51 && age <= 65) {
-                        fee = new BigDecimal(1670);
-                    }
-                }
-            }
-        }
-        return fee;
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(490);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(640);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(870);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(1220);
+                }
+            }
+        }
+        if (paymentMethod.equals("终身交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(335);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(470);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(700);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(1130);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(1960);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 12) {
+                    fee = new BigDecimal(290);
+                }
+                if (age > 12 && age <= 25) {
+                    fee = new BigDecimal(410);
+                }
+                if (age > 25 && age <= 38) {
+                    fee = new BigDecimal(615);
+                }
+                if (age > 38 && age <= 51) {
+                    fee = new BigDecimal(975);
+                }
+                if (age > 51 && age <= 65) {
+                    fee = new BigDecimal(1670);
+                }
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
 
-    private BigDecimal type38(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("关爱e生两全保险(分红型)")) {
-            if (paymentMethod.equals("5年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(2685);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(3470);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(4555);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(5960);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(7710);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(2535);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(3260);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(4290);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(5605);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(7185);
-                    }
+    private ResultEntity<BigDecimal> type38(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 60) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~60之间");
+        }
+        if (paymentMethod.equals("5年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(2685);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(3470);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(4555);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(5960);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(7710);
                 }
             }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(2535);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(3260);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(4290);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(5605);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(7185);
+                }
+            }
+        }
 
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(1415);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(1825);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(2400);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(3170);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(4210);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(1335);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(1715);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(2265);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(2975);
-                    }
-                    if (age > 47 && age <= 60) {
-                        fee = new BigDecimal(3885);
-                    }
-                }
-            }
-            if (paymentMethod.equals("20年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(795);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(1025);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(1360);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(1840);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 11) {
-                        fee = new BigDecimal(750);
-                    }
-                    if (age > 11 && age <= 23) {
-                        fee = new BigDecimal(965);
-                    }
-                    if (age > 23 && age <= 35) {
-                        fee = new BigDecimal(1280);
-                    }
-                    if (age > 35 && age <= 47) {
-                        fee = new BigDecimal(1720);
-                    }
-                }
-            }
-        }
-        return fee;
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(1415);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(1825);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(2400);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(3170);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(4210);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(1335);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(1715);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(2265);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(2975);
+                }
+                if (age > 47 && age <= 60) {
+                    fee = new BigDecimal(3885);
+                }
+            }
+        }
+        if (paymentMethod.equals("20年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(795);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(1025);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(1360);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(1840);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 11) {
+                    fee = new BigDecimal(750);
+                }
+                if (age > 11 && age <= 23) {
+                    fee = new BigDecimal(965);
+                }
+                if (age > 23 && age <= 35) {
+                    fee = new BigDecimal(1280);
+                }
+                if (age > 35 && age <= 47) {
+                    fee = new BigDecimal(1720);
+                }
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
-    private BigDecimal type39(Integer age, String gender, String name, BigDecimal fee, String paymentMethod) {
-        if (name.equals("锦绣前程少儿两全保险A款(分红型)")) {
-            if (paymentMethod.equals("5年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(73);
-                    }
-                    if (age > 3 && age <= 6) {
-                        fee = new BigDecimal(79);
-                    }
-                    if (age > 6 && age <= 9) {
-                        fee = new BigDecimal(99);
-                    }
-                    if (age > 9 && age <= 12) {
-                        fee = new BigDecimal(135);
-                    }
-                    if (age > 12 && age <= 15) {
-                        fee = new BigDecimal(235);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(73);
-                    }
-                    if (age > 3 && age <= 6) {
-                        fee = new BigDecimal(79);
-                    }
-                    if (age > 6 && age <= 9) {
-                        fee = new BigDecimal(99);
-                    }
-                    if (age > 9 && age <= 12) {
-                        fee = new BigDecimal(135);
-                    }
-                    if (age > 12 && age <= 15) {
-                        fee = new BigDecimal(235);
-                    }
+    private ResultEntity<BigDecimal> type39(Integer age, String gender, BigDecimal fee, String paymentMethod) {
+        if (age < 0 || age > 15) {
+            return new ResultEntity<BigDecimal>(HttpStatus.OK,"被保人年龄必须在0~15之间");
+        }
+        if (paymentMethod.equals("5年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(73);
+                }
+                if (age > 3 && age <= 6) {
+                    fee = new BigDecimal(79);
+                }
+                if (age > 6 && age <= 9) {
+                    fee = new BigDecimal(99);
+                }
+                if (age > 9 && age <= 12) {
+                    fee = new BigDecimal(135);
+                }
+                if (age > 12 && age <= 15) {
+                    fee = new BigDecimal(235);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(73);
+                }
+                if (age > 3 && age <= 6) {
+                    fee = new BigDecimal(79);
+                }
+                if (age > 6 && age <= 9) {
+                    fee = new BigDecimal(99);
+                }
+                if (age > 9 && age <= 12) {
+                    fee = new BigDecimal(135);
+                }
+                if (age > 12 && age <= 15) {
+                    fee = new BigDecimal(235);
                 }
             }
+        }
 
-            if (paymentMethod.equals("10年交")) {
-                if (gender.equals("男")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(50);
-                    }
-                    if (age > 3 && age <= 6) {
-                        fee = new BigDecimal(60);
-                    }
-                    if (age > 6 && age <= 9) {
-                        fee = new BigDecimal(90);
-                    }
-                    if (age > 9 && age <= 12) {
-                        fee = new BigDecimal(180);
-                    }
-                }
-                if (gender.equals("女")) {
-                    if (age > 0 && age <= 3) {
-                        fee = new BigDecimal(50);
-                    }
-                    if (age > 3 && age <= 6) {
-                        fee = new BigDecimal(60);
-                    }
-                    if (age > 6 && age <= 9) {
-                        fee = new BigDecimal(90);
-                    }
-                    if (age > 9 && age <= 12) {
-                        fee = new BigDecimal(180);
-                    }
-                }
-            }
-        }
-        return fee;
+        if (paymentMethod.equals("10年交")) {
+            if (gender.equals("男")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(50);
+                }
+                if (age > 3 && age <= 6) {
+                    fee = new BigDecimal(60);
+                }
+                if (age > 6 && age <= 9) {
+                    fee = new BigDecimal(90);
+                }
+                if (age > 9 && age <= 12) {
+                    fee = new BigDecimal(180);
+                }
+            }
+            if (gender.equals("女")) {
+                if (age > 0 && age <= 3) {
+                    fee = new BigDecimal(50);
+                }
+                if (age > 3 && age <= 6) {
+                    fee = new BigDecimal(60);
+                }
+                if (age > 6 && age <= 9) {
+                    fee = new BigDecimal(90);
+                }
+                if (age > 9 && age <= 12) {
+                    fee = new BigDecimal(180);
+                }
+            }
+        }
+        return new ResultEntity<BigDecimal>(HttpStatus.OK, fee);
     }
 
 }
\ No newline at end of file
diff --git a/src/main/resources/mapper/CaseDistributionOfPropertyFamilyRecordsMapper.xml b/src/main/resources/mapper/CaseDistributionOfPropertyFamilyRecordsMapper.xml
index d6a7ab8..99e61cd 100644
--- a/src/main/resources/mapper/CaseDistributionOfPropertyFamilyRecordsMapper.xml
+++ b/src/main/resources/mapper/CaseDistributionOfPropertyFamilyRecordsMapper.xml
@@ -293,13 +293,13 @@
     insert into case_distribution_of_property_family_records (case_distribution_of_property_family_records_id,
     caseid,
     case_distribution_of_property_id, name, age,
-    customer_relationship, annual_income, sort,
+    customer_relationship, annual_income, create_time,
     user_id, is_answer)
     values
     <foreach collection="list" item="item" separator=",">
       (#{item.caseDistributionOfPropertyFamilyRecordsId,jdbcType=VARCHAR}, #{item.caseid,jdbcType=VARCHAR},
       #{item.caseDistributionOfPropertyId,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}, #{item.age,jdbcType=INTEGER},
-      #{item.customerRelationship,jdbcType=VARCHAR}, #{item.annualIncome,jdbcType=DECIMAL}, #{item.sort,jdbcType=INTEGER},
+      #{item.customerRelationship,jdbcType=VARCHAR}, #{item.annualIncome,jdbcType=DECIMAL}, #{item.create_time,jdbcType=TIMESTAMP},
       #{item.userId,jdbcType=VARCHAR}, #{item.isAnswer,jdbcType=VARCHAR})
     </foreach>
   </insert>