def test_117_deduction_apply_all_periods(self):
     """主动还款:连续还款整笔结清"""
     data = excel_table_byname(self.file, 'deduction_apply')
     param = json.loads(data[0]['param'])
     repayment_plan_list = self.r.get("rmkj_9_periods_repayment_plan")
     maturity = GetSqlData.get_maturity(
         project_id=self.r.get("rmkj_9_periods_projectId"),
         environment=self.env)
     for period in range(1, maturity + 1):
         success_amount = 0.00
         repayment_detail_list = []
         for i in json.loads(repayment_plan_list):
             if i['period'] == period:
                 plan_detail = {
                     "period": i['period'],
                     "payAmount": i['restAmount'],
                     "planCategory": i['repaymentPlanType']
                 }
                 success_amount = round(
                     success_amount + plan_detail.get("payAmount"), 2)
                 repayment_detail_list.append(plan_detail)
         param.update({
             "sourceRequestId":
             Common.get_random("requestNum"),
             "projectId":
             self.r.get("rmkj_9_periods_projectId"),
             "sourceProjectId":
             self.r.get("rmkj_9_periods_sourceProjectId"),
             "sourceUserId":
             self.r.get("rmkj_9_periods_sourceUserId"),
             "serviceSn":
             Common.get_random("serviceSn"),
             "payTime":
             Common.get_time("-"),
             "successAmount":
             success_amount,
             "period":
             period
         })
         param['repaymentDetailList'] = repayment_detail_list
         if len(data[0]['headers']) == 0:
             headers = None
         else:
             headers = json.loads(data[0]['headers'])
         rep = Common.response(faceaddr=data[0]['url'],
                               headers=headers,
                               data=json.dumps(param, ensure_ascii=False),
                               product="cloudloan",
                               environment=self.env)
         self.assertEqual(rep['resultCode'], int(data[0]['resultCode']))
         Assert.check_repayment(True, self.env,
                                self.r.get("rmkj_9_periods_projectId"),
                                param)
         self.r.set("rmkj_9_periods_deductionTaskId",
                    rep['content']['deductionTaskId'])
Beispiel #2
0
    def _init_repayment_plan(env: str, project_id: str) -> None:
        """
		放款时还款计划校验
		:param env:
		:param project_id:
		:return:
		"""
        database_repayment_plan = GetSqlData.get_repayment_plan(
            project_id=project_id, environment=env)
        maturity = GetSqlData.get_maturity(project_id=project_id,
                                           environment=env)
        for plan in database_repayment_plan:
            assert_that(plan["repayment_status"]).is_equal_to(1)
        Ulog().logger_().info("还款计划状态校验通过")
        assert_that(database_repayment_plan).is_length(maturity * 2)
        Ulog().logger_().info("还款计划条数校验通过")
Beispiel #3
0
 def _get_swap_data(env: str, project_id: str, period: int):
     _data = {
         "period":
         period,
         "current_repayment_plan": [],  # 当前期的还款计划
         "before_repayment_plan": [],  # 已发生的还款计划
         "after_repayment_plan": [],  # 未发生的还款计划
         "current_fee_plan": [],  # 当前期费计划
         "before_fee_plan": [],  # 已发生的费计划
         "after_fee_plan": [],  # 未发生的费计划
         "current_swap_detail": [],  # 当前期债转详情
         "before_swap_detail": [],  # 已发生期的债转详情
         "after_swap_detail": [],  # 未发生期的债转详情
         "maturity":
         GetSqlData.get_maturity(project_id=project_id, environment=env),
         "database_repayment_plan":
         GetSqlData.get_repayment_plan(project_id=project_id,
                                       environment=env),
         "database_fee_plan":
         GetSqlData.get_fee_plan(project_id, env),
         "database_swap_detail":
         GetSqlData.get_swap_detail(project_id, env),
         "asset":
         GetSqlData.get_asset(project_id, env)
     }
     for p in _data["database_repayment_plan"]:
         if p["period"] == period:
             _data["current_repayment_plan"].append(p)
         elif p["period"] < period:
             _data["before_repayment_plan"].append(p)
         else:
             _data["after_repayment_plan"].append(p)
     for f in _data["database_fee_plan"]:
         if f["period"] == period:
             _data["current_fee_plan"].append(f)
         elif f["period"] < period:
             _data["before_fee_plan"].append(f)
         else:
             _data["after_fee_plan"].append(f)
     for s in _data["database_swap_detail"]:
         if s["period"] == period:
             _data["current_swap_detail"].append(s)
         elif s["period"] < period:
             _data["before_swap_detail"].append(s)
         else:
             _data["after_swap_detail"].append(s)
     return _data
Beispiel #4
0
    def _get_repay_data(env: str, project_id: str,
                        param: Optional[dict]) -> dict:
        """
		初始化校验需要用到的还款数据
		:param env:
		:param project_id:
		:param param:
		:return:
		"""
        _data = {
            "repay_type":
            param["repayType"],
            "period":
            param["period"],
            "pay_time":
            param["payTime"],
            "repayment_detail":
            param["repaymentDetailList"],
            "repay_principal":
            0,
            "repay_interest":
            0,
            "plan_pay_date":
            None,
            "success_amount":
            param["successAmount"],
            "payment_flow_source":
            param["paymentFlowSource"],
            "source_repayment_id":
            param["sourceRepaymentId"],
            "maturity":
            GetSqlData.get_maturity(project_id=project_id, environment=env),
            "database_repayment_plan":
            GetSqlData.get_repayment_plan(project_id=project_id,
                                          environment=env),
            "database_fee_plan":
            GetSqlData.get_fee_plan(project_id, env),
            "database_repayment":
            GetSqlData.get_repayment(project_id, env)[-1],
            "database_repayment_detail":
            GetSqlData.get_repayment_detail(project_id, env),
            "current_repayment_plan": [],  # 当前期的还款计划
            "before_repayment_plan": [],  # 已发生的还款计划
            "after_repayment_plan": [],  # 未发生的还款计划
            "current_fee_plan": [],  # 当前期费计划
            "before_fee_plan": [],  # 已发生的费计划
            "after_fee_plan": [],  # 未发生的费计划
            "current_repayment_detail": [],  # 当前期还款流水
            "before_repayment_detail": [],  # 已发生的还款流水
            "after_repayment_detail": []  # 未发生的还款流水
        }
        _data["plan_pay_date"] = GetSqlData.get_repayment_plan_date(
            project_id, env, 1, _data["period"])["plan_pay_date"]
        for p in _data["database_repayment_plan"]:
            if p["period"] == _data["period"]:
                _data["current_repayment_plan"].append(p)
            elif p["period"] < _data["period"]:
                _data["before_repayment_plan"].append(p)
            else:
                _data["after_repayment_plan"].append(p)
        for f in _data["database_fee_plan"]:
            if f["period"] == _data["period"]:
                _data["current_fee_plan"].append(f)
            elif f["period"] < _data["period"]:
                _data["before_fee_plan"].append(f)
            else:
                _data["after_fee_plan"].append(f)
        for detail in _data["repayment_detail"]:
            if detail["planCategory"] == 1:
                _data["repay_principal"] += detail["payAmount"]
            elif detail["planCategory"] == 2:
                _data["repay_interest"] += detail["payAmount"]
        for repayment_detail in _data["database_repayment_detail"]:
            if repayment_detail["period"] < _data["period"]:
                _data["before_repayment_detail"].append(repayment_detail)
            elif repayment_detail["period"] == _data["period"]:
                _data["current_repayment_detail"].append(repayment_detail)
            elif repayment_detail["period"] > _data["period"]:
                _data["after_repayment_detail"].append(repayment_detail)
        return _data