From a9e5db8637c0f46fd7d2efd907b68816e8dc2b65 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Fri, 19 Apr 2024 12:47:29 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix=EF=BC=9A=E6=9D=83=E9=99=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InstallmentHistoryDetailController.java | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/InstallmentHistoryDetailController.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/InstallmentHistoryDetailController.java index 352d6ff..ea58bcf 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/InstallmentHistoryDetailController.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/InstallmentHistoryDetailController.java @@ -1,30 +1,23 @@ package com.ruoyi.invest.controller; -import java.util.List; -import java.io.IOException; -import javax.servlet.http.HttpServletResponse; -import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.invest.domain.InstallmentHistoryDetail; -import com.ruoyi.invest.domain.vo.InstallmentHistoryDetailVo; import com.ruoyi.invest.domain.dto.InstallmentHistoryDetailDto; +import com.ruoyi.invest.domain.vo.InstallmentHistoryDetailVo; import com.ruoyi.invest.service.IInstallmentHistoryDetailService; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.utils.poi.ExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import com.ruoyi.common.core.web.page.TableDataInfo; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 分期历史明细Controller @@ -44,7 +37,7 @@ public class InstallmentHistoryDetailController extends BaseController * 查询分期历史明细列表 */ @ApiOperation(value="查询分期历史明细列表",response = InstallmentHistoryDetailVo.class) - @RequiresPermissions("invest:installmentDetail:list") + @RequiresPermissions("invest:installmentHistory:list") @GetMapping("/list") public TableDataInfo list(InstallmentHistoryDetailDto installmentHistoryDetailDto) { @@ -57,7 +50,7 @@ public class InstallmentHistoryDetailController extends BaseController * 导出分期历史明细列表 */ @ApiOperation(value="导出分期历史明细列表") - @RequiresPermissions("invest:installmentDetail:export") + @RequiresPermissions("invest:installmentHistory:export") @Log(title = "分期历史明细", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, InstallmentHistoryDetailDto installmentHistoryDetailDto) @@ -71,7 +64,7 @@ public class InstallmentHistoryDetailController extends BaseController * 获取分期历史明细详细信息 */ @ApiOperation(value="获取分期历史明细详细信息") - @RequiresPermissions("invest:installmentDetail:query") + @RequiresPermissions("invest:installmentHistory:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -82,7 +75,7 @@ public class InstallmentHistoryDetailController extends BaseController * 新增分期历史明细 */ @ApiOperation(value="新增分期历史明细") - @RequiresPermissions("invest:installmentDetail:add") + @RequiresPermissions("invest:installmentHistory:add") @Log(title = "分期历史明细", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody InstallmentHistoryDetail installmentHistoryDetail) @@ -94,7 +87,7 @@ public class InstallmentHistoryDetailController extends BaseController * 修改分期历史明细 */ @ApiOperation(value="修改分期历史明细") - @RequiresPermissions("invest:installmentDetail:edit") + @RequiresPermissions("invest:installmentHistory:edit") @Log(title = "分期历史明细", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody InstallmentHistoryDetail installmentHistoryDetail) @@ -106,7 +99,7 @@ public class InstallmentHistoryDetailController extends BaseController * 删除分期历史明细 */ @ApiOperation(value="删除分期历史明细") - @RequiresPermissions("invest:installmentDetail:remove") + @RequiresPermissions("invest:installmentHistory:remove") @Log(title = "分期历史明细", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) From 40594fbf8df812d45acbfa50bbc9db31e9831d51 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Fri, 19 Apr 2024 13:15:18 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix=EF=BC=9A=E8=87=AA=E6=B5=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/InstallmentHistoryDetailServiceImpl.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java index fd8943c..43a24b5 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java @@ -16,7 +16,10 @@ import com.ruoyi.invest.service.IInstallmentHistoryDetailService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Calendar; +import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 分期历史明细Service业务层处理 @@ -89,7 +92,14 @@ public class InstallmentHistoryDetailServiceImpl implements IInstallmentHistoryD //如果是信用卡分期 if(installmentHistoryDetail.getType().equals("2")){ //已入账 - if(installmentHistoryDetail.getPostingState().equals("1")){ + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(installmentHistoryDetail.getRepaymentDate()); + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(new Date()); + long diffInMillis = cal2.getTimeInMillis() - cal1.getTimeInMillis(); + int daysDiff = Long.valueOf(TimeUnit.MILLISECONDS.toDays(diffInMillis)).intValue(); + //入账日期小于一个月的 + if("1".equals(installmentHistoryDetail.getPostingState())&&daysDiff<31){ //信用卡账户余额计算 AccountsVo creditAccount=accountsMapper.selectAccountsById(installmentHistoryDetail.getBankCardLendId()); From f07d3e858ff84c795a6f9c23a4978c3d734e9eac Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Fri, 26 Apr 2024 17:33:23 +0800 Subject: [PATCH 3/8] =?UTF-8?q?fix=EF=BC=9A=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=9C=80=E8=BF=91=E8=BF=98?= =?UTF-8?q?=E6=AC=BE=E6=97=A5=E6=9C=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/invest/domain/vo/InstallmentHistoryVo.java | 6 ++++++ .../mapper/invest/InstallmentHistoryMapper.xml | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryVo.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryVo.java index 52c92b5..7871646 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryVo.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryVo.java @@ -4,6 +4,9 @@ import com.ruoyi.invest.domain.InstallmentHistory; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import io.swagger.annotations.ApiModel; + +import java.util.Date; + /** * 网贷及分期历史Vo对象 installment_history * @@ -22,4 +25,7 @@ public class InstallmentHistoryVo extends InstallmentHistory @ApiModelProperty(value="银行卡名称卡号)") private String bankNameCode; + + @ApiModelProperty(value="最近还款日)") + private Date repaymentDate; } diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml index c1b4386..b65c6d5 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml @@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -53,6 +53,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ihd.installment_history_id = a.id and ihd .posting_state = '0' ) as balance, + ( + select + min(d.repayment_date) + from + installment_history_detail d + where + d.installment_history_id = a.id + and d.posting_state = '0') + as repayment_date, a.repaid_period, a.total_interest, a.interest_rate, From ec224dc9926383f4692a0f5b58b692acd1bb5cf2 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Fri, 26 Apr 2024 18:09:53 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix=EF=BC=9A=E6=95=B0=E6=8D=AE=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E7=BB=9F=E4=B8=80=E4=BF=AE=E5=A4=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit eae2dc899b028e44876083a5e930c256cf6b7108) --- .../service/impl/StatisticAnalysisImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java index f134372..a5ad0a9 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java @@ -440,7 +440,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", creditCardBillVo.getName()); - datamap.put("value", creditCardBillVo.getBillAmount()); + datamap.put("value", decimalFormat.format(creditCardBillVo.getBillAmount())); tableCreditBillList.add(datamap); } Collections.reverse(creditAnalysisList); @@ -448,7 +448,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", creditCardBillVo.getName()); - datamap.put("value", creditCardBillVo.getBillAmount()); + datamap.put("value", decimalFormat.format(creditCardBillVo.getBillAmount())); creditBillList.add(datamap); } //列表 @@ -599,7 +599,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", futureStocksBillVo.getName()); - datamap.put("value", futureStocksBillVo.getBillAmount()); + datamap.put("value", decimalFormat.format(futureStocksBillVo.getBillAmount())); tableFuturesStocksList.add(datamap); } Collections.reverse(futureStocksBillList); @@ -607,7 +607,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", futureStocksBillVo.getName()); - datamap.put("value", futureStocksBillVo.getBillAmount()); + datamap.put("value", decimalFormat.format(futureStocksBillVo.getBillAmount())); futuresStocksList.add(datamap); } //列表 @@ -803,7 +803,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", vo.getRemark()); - datamap.put("value", vo.getCurrentAmount()); + datamap.put("value", decimalFormat.format(vo.getCurrentAmount())); tableHistoryDetailList.add(datamap); } Collections.reverse(installmentHistoryDetailList); @@ -811,7 +811,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", vo.getRemark()); - datamap.put("value", vo.getCurrentAmount()); + datamap.put("value", decimalFormat.format(vo.getCurrentAmount())); historyDetailList.add(datamap); } //列表 @@ -1181,7 +1181,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", vo.getRemark()); - datamap.put("value", vo.getInstallmentAmount()); + datamap.put("value", decimalFormat.format(vo.getInstallmentAmount())); tableHistoryList.add(datamap); } Collections.reverse(installmentHistoryVoList); @@ -1189,7 +1189,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", vo.getRemark()); - datamap.put("value", vo.getInstallmentAmount()); + datamap.put("value", decimalFormat.format(vo.getInstallmentAmount())); historyList.add(datamap); } //列表 @@ -1439,7 +1439,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", vo.getRemark()); - datamap.put("value", vo.getAmount()); + datamap.put("value", decimalFormat.format(vo.getAmount())); tablePosList.add(datamap); } Collections.reverse(queryList); @@ -1447,7 +1447,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { ) { Map datamap = new HashMap<>(); datamap.put("time", vo.getRemark()); - datamap.put("value", vo.getAmount()); + datamap.put("value", decimalFormat.format(vo.getAmount())); posList.add(datamap); } //列表 From a07ca6754b1da3e70154a39826038d44a7b5e79b Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Sun, 28 Apr 2024 16:53:43 +0800 Subject: [PATCH 5/8] =?UTF-8?q?fix=EF=BC=9A=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= =?UTF-8?q?=EF=BC=8C=E8=87=AA=E6=B5=8B=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-api/pom.xml | 2 +- ruoyi-api/ruoyi-api-invest/pom.xml | 28 +++ .../ruoyi/api/invest/RemoteInvestService.java | 33 ++++ .../factory/RemoteInvestFallbackFactory.java | 39 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../core/constant/ServiceNameConstants.java | 4 +- .../ruoyi/invest/domain/CreditCardBill.java | 4 + .../domain/dto/AccountsDealRecordDto.java | 17 +- .../invest/domain/dto/CreditCardBillDto.java | 17 +- .../impl/CreditCardBillServiceImpl.java | 24 ++- .../service/impl/StatisticAnalysisImpl.java | 27 ++- .../com/ruoyi/job/controller/InvestJob.java | 47 +++++ .../ruoyi/job/service/IInvestJobService.java | 30 ++++ .../ruoyi/job/service/impl/InvestJobImpl.java | 166 ++++++++++++++++++ .../invest/AccountsDealRecordMapper.xml | 7 + .../mapper/invest/CreditCardBillMapper.xml | 11 ++ ruoyi-modules/ruoyi-job/pom.xml | 7 +- .../com/ruoyi/job/task/InvestJobTask.java | 34 ++++ 18 files changed, 485 insertions(+), 13 deletions(-) create mode 100644 ruoyi-api/ruoyi-api-invest/pom.xml create mode 100644 ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/RemoteInvestService.java create mode 100644 ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/factory/RemoteInvestFallbackFactory.java create mode 100644 ruoyi-api/ruoyi-api-invest/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/controller/InvestJob.java create mode 100644 ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/IInvestJobService.java create mode 100644 ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java create mode 100644 ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/InvestJobTask.java diff --git a/ruoyi-api/pom.xml b/ruoyi-api/pom.xml index a57a127..8aa6149 100644 --- a/ruoyi-api/pom.xml +++ b/ruoyi-api/pom.xml @@ -10,8 +10,8 @@ ruoyi-api-system + ruoyi-api-invest - ruoyi-api pom diff --git a/ruoyi-api/ruoyi-api-invest/pom.xml b/ruoyi-api/ruoyi-api-invest/pom.xml new file mode 100644 index 0000000..a14a3e8 --- /dev/null +++ b/ruoyi-api/ruoyi-api-invest/pom.xml @@ -0,0 +1,28 @@ + + + + com.ruoyi + ruoyi-api + 3.6.3 + + 4.0.0 + + ruoyi-api-invest + + + ruoyi-api-invest + + + + + + + com.ruoyi + ruoyi-common-core + + + + + diff --git a/ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/RemoteInvestService.java b/ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/RemoteInvestService.java new file mode 100644 index 0000000..cc3375f --- /dev/null +++ b/ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/RemoteInvestService.java @@ -0,0 +1,33 @@ +package com.ruoyi.api.invest; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +/** + * 基础服务 + * + * @author YaphetS + */ +@FeignClient(contextId = "remoteInvestService", value = ServiceNameConstants.INTC_INVEST, fallbackFactory = com.ruoyi.api.invest.factory.RemoteInvestFallbackFactory.class) +public interface RemoteInvestService +{ + /** + * 生成未出信用卡账单数据 + * + * @return 结果 + */ + @RequestMapping(value = "/job/generateUnpaidCreditBill",method = RequestMethod.POST) + public R generateUnpaidCreditBillTask(); + + /** + * 更新未出信用卡分期账单入账数据 + * + * @return 结果 + */ + @RequestMapping(value = "/job/updateUnpaidInstallmentData",method = RequestMethod.POST) + public R updateUnpaidInstallmentDataTask(); + + + +} diff --git a/ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/factory/RemoteInvestFallbackFactory.java b/ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/factory/RemoteInvestFallbackFactory.java new file mode 100644 index 0000000..ee1a5ba --- /dev/null +++ b/ruoyi-api/ruoyi-api-invest/src/main/java/com/ruoyi/api/invest/factory/RemoteInvestFallbackFactory.java @@ -0,0 +1,39 @@ +package com.ruoyi.api.invest.factory; + +import com.ruoyi.api.invest.RemoteInvestService; +import com.ruoyi.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 用户服务降级处理 + * + * @author ruoyi + */ +@Component +public class RemoteInvestFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(com.ruoyi.api.invest.factory.RemoteInvestFallbackFactory.class); + + @Override + public RemoteInvestService create(Throwable throwable) + { + log.error("投资服务调用失败:{}", throwable.getMessage()); + return new RemoteInvestService() + { + + @Override + public R generateUnpaidCreditBillTask() { + return R.fail("投资服务调用生成未出信用卡账单数据失败"); + } + + @Override + public R updateUnpaidInstallmentDataTask() { + return R.fail("投资服务调用更新未出信用卡分期账单入账数据失败"); + } + + }; + } +} diff --git a/ruoyi-api/ruoyi-api-invest/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-invest/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..a3758c6 --- /dev/null +++ b/ruoyi-api/ruoyi-api-invest/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.ruoyi.api.invest.factory.RemoteInvestFallbackFactory \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index 7e04232..072ce13 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -57,7 +57,7 @@ public class ServiceNameConstants public static final String VIDEO_SERVICE ="hny-video"; /** - * SMART_LIGHT_SERVICE的serviceId + * INTC_INVEST的serviceId */ - public static final String SMART_LIGHT_SERVICE ="hny-smart-light"; + public static final String INTC_INVEST ="intc-invest"; } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/CreditCardBill.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/CreditCardBill.java index 57646af..e3b85e9 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/CreditCardBill.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/CreditCardBill.java @@ -52,6 +52,9 @@ public class CreditCardBill extends BaseEntity /** 删除标志(0代表存在 1代表删除) */ private String delFlag; + /** 删除标志(0代表存在 1代表删除) */ + private String billState; + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -66,6 +69,7 @@ public class CreditCardBill extends BaseEntity .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("delFlag", getDelFlag()) + .append("billState", getBillState()) .toString(); } } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AccountsDealRecordDto.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AccountsDealRecordDto.java index 566004c..ec73011 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AccountsDealRecordDto.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AccountsDealRecordDto.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; +import java.util.Date; + /** * 账户交易记录Dto对象 accounts_deal_record * @@ -27,7 +29,7 @@ public class AccountsDealRecordDto implements Serializable /** 账户 */ @ApiModelProperty(value="账户") - private String accountId; + private Long accountId; /** 交易类型 */ @ApiModelProperty(value="交易类型") @@ -37,12 +39,21 @@ public class AccountsDealRecordDto implements Serializable @ApiModelProperty(value="交易类别") private String dealCategory; - /** 交易类别 */ + /** 开始日期 */ @ApiModelProperty(value="开始日期") private String startTime; - /** 交易类别 */ + /** 结束日期 */ @ApiModelProperty(value="结束日期") private String endTime; + /** 开始时间*/ + @ApiModelProperty(value="开始时间") + private Date startDateTime; + + /** 结束时间*/ + @ApiModelProperty(value="结束时间") + private Date endDateTime; + + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/CreditCardBillDto.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/CreditCardBillDto.java index 33a0fa5..1116921 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/CreditCardBillDto.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/CreditCardBillDto.java @@ -25,13 +25,24 @@ public class CreditCardBillDto implements Serializable @ApiModelProperty(value="信用卡id") private Long creditCardId; + /** 开始月份 */ + @ApiModelProperty(value="开始月份") + private String startMonth; + + /** 结束月份 */ @ApiModelProperty(value="结束月份") private String endMonth; - /** 开始月份 */ - @ApiModelProperty(value="开始月份") - private String startMonth; + /** 账单状态 */ + @ApiModelProperty(value="账单状态") + private String billState; + + + /** 账单日 */ + @ApiModelProperty(value="账单日") + private String billDate; + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/CreditCardBillServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/CreditCardBillServiceImpl.java index 32423b4..6f564cc 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/CreditCardBillServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/CreditCardBillServiceImpl.java @@ -6,7 +6,9 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.invest.domain.CreditCardBill; import com.ruoyi.invest.domain.dto.CreditCardBillDto; +import com.ruoyi.invest.domain.vo.BankCardLendVo; import com.ruoyi.invest.domain.vo.CreditCardBillVo; +import com.ruoyi.invest.mapper.BankCardLendMapper; import com.ruoyi.invest.mapper.CreditCardBillMapper; import com.ruoyi.invest.service.ICreditCardBillService; import org.springframework.stereotype.Service; @@ -28,6 +30,8 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService { @Resource private CreditCardBillMapper creditCardBillMapper; + @Resource + private BankCardLendMapper bankCardLendMapper; /** * 查询信用卡账单 @@ -74,17 +78,25 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService creditCardBill.setId(IdWorker.getId()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + BankCardLendVo bankCard=bankCardLendMapper.selectBankCardLendById(creditCardBill.getCreditCardId()); + //0表示当期,1表示下期 + String isNextBillDate = bankCard.getIsNextBillDate(); if(creditCardBill.getBillDate()!=null){ creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate())); Calendar calendarStart = Calendar.getInstance(); calendarStart.setTime(creditCardBill.getBillDate()); calendarStart.add(Calendar.MONTH, -1); + if(isNextBillDate.equals("0")){ + calendarStart.add(Calendar.DATE, 1); + } Date lastMonth = calendarStart.getTime(); String periodStart = formatter.format(lastMonth); Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTime(creditCardBill.getBillDate()); - calendarEnd.add(Calendar.DATE, -1); + if(isNextBillDate.equals("1")){ + calendarEnd.add(Calendar.DATE, -1); + } Date lastDay = calendarEnd.getTime(); String periodEnd= formatter.format(lastDay); creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd); @@ -107,17 +119,25 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService creditCardBill.setUpdateTime(DateUtils.getNowDate()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + BankCardLendVo bankCard=bankCardLendMapper.selectBankCardLendById(creditCardBill.getCreditCardId()); + //0表示当期,1表示下期 + String isNextBillDate = bankCard.getIsNextBillDate(); if(creditCardBill.getBillDate()!=null){ creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate())); Calendar calendarStart = Calendar.getInstance(); calendarStart.setTime(creditCardBill.getBillDate()); calendarStart.add(Calendar.MONTH, -1); + if(isNextBillDate.equals("0")){ + calendarStart.add(Calendar.DATE, 1); + } Date lastMonth = calendarStart.getTime(); String periodStart = formatter.format(lastMonth); Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTime(creditCardBill.getBillDate()); - calendarEnd.add(Calendar.DATE, -1); + if(isNextBillDate.equals("1")){ + calendarEnd.add(Calendar.DATE, -1); + } Date lastDay = calendarEnd.getTime(); String periodEnd= formatter.format(lastDay); creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd); diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java index a5ad0a9..e7fc2d3 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java @@ -113,6 +113,28 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { //返回数据 HashMap map = new HashMap<>(); DecimalFormat decimalFormat = new DecimalFormat("#.##"); + + AccountsDto dto=new AccountsDto(); + dto.setState("1"); + //储蓄卡 + dto.setType("1"); + List accountsList=accountsMapper.selectAccountsList(dto); + double debetBalance =0; + if(accountsList.size()>0){ + debetBalance=accountsList.stream().mapToDouble(AccountsVo::getAvailableLimit).sum(); + } + map.put("debetBalance",decimalFormat.format(debetBalance)); + + dto.setState("1"); + //信用卡 + dto.setType("2"); + accountsList=accountsMapper.selectAccountsList(dto); + double creditBalance =0; + if(accountsList.size()>0){ + creditBalance=accountsList.stream().mapToDouble(AccountsVo::getBalance).sum()*(-1); + } + map.put("creditBalance",decimalFormat.format(creditBalance)); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatterMonth = new SimpleDateFormat("yyyy-MM"); //未结清网贷数据 @@ -148,7 +170,10 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { } map.put("peopleLendHistory",decimalFormat.format(peopleLendHistory)); - map.put("totalDebt",decimalFormat.format(unClearedOnlineDebt+creditInstallmentHistory+peopleLendHistory)); + //总负债 + map.put("totalDebt",decimalFormat.format(unClearedOnlineDebt+creditBalance+peopleLendHistory)); + //净资产 + map.put("netAsset",decimalFormat.format(debetBalance-unClearedOnlineDebt-creditBalance-peopleLendHistory)); //未结清账户数 installmentHistoryDto.setState("0"); diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/controller/InvestJob.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/controller/InvestJob.java new file mode 100644 index 0000000..b0fd0a0 --- /dev/null +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/controller/InvestJob.java @@ -0,0 +1,47 @@ +package com.ruoyi.job.controller; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.job.service.IInvestJobService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 信息Controller + * + * @author tianyongbao + * @date 2023-12-11 + */ +@Api(tags=" 生成数据信息") +@RestController +@RequestMapping("/job") +public class InvestJob +{ + @Resource + private IInvestJobService investJobService; + + @PostMapping("/generateUnpaidCreditBill") + public AjaxResult generateUnpaidCreditBill() + { + System.out.println("================================开始生成未出账单数据("+ DateUtils.getTime() +")================================="); + investJobService.generateUnpaidCreditBill(); + System.out.println("================================结束生成未出账单据("+ DateUtils.getTime() +")================================="); + return AjaxResult.success(); + } + + @PostMapping("/updateUnpaidInstallmentData") + public AjaxResult updateUnpaidInstallmentData() + { + System.out.println("================================开始更新未出信用卡分期账单入账数据("+ DateUtils.getTime() +")================================="); + investJobService.updateUnpaidInstallmentData(); + System.out.println("================================结束更新未出信用卡分期账单入账拟数据("+ DateUtils.getTime() +")================================="); + return AjaxResult.success(); + } + + + +} diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/IInvestJobService.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/IInvestJobService.java new file mode 100644 index 0000000..c365bd9 --- /dev/null +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/IInvestJobService.java @@ -0,0 +1,30 @@ +package com.ruoyi.job.service; + + +/** + * 生成模拟数据 + * + * @author tianyongbao + * @date 2023-12-11 + */ +public interface IInvestJobService +{ + /** + * 生成模拟数据 + * + * @author tianyongbao + * @date 2023-12-11 + */ + public void generateUnpaidCreditBill(); + + /** + * 生成能耗模拟数据 + * + * @author tianyongbao + * @date 2023-12-12 + */ + public void updateUnpaidInstallmentData(); + + + +} diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java new file mode 100644 index 0000000..ab58701 --- /dev/null +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java @@ -0,0 +1,166 @@ +package com.ruoyi.job.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.IdWorker; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.invest.domain.CreditCardBill; +import com.ruoyi.invest.domain.dto.AccountsDealRecordDto; +import com.ruoyi.invest.domain.dto.BankCardLendDto; +import com.ruoyi.invest.domain.dto.CreditCardBillDto; +import com.ruoyi.invest.domain.vo.AccountsDealRecordVo; +import com.ruoyi.invest.domain.vo.BankCardLendVo; +import com.ruoyi.invest.domain.vo.CreditCardBillVo; +import com.ruoyi.invest.mapper.AccountsDealRecordMapper; +import com.ruoyi.invest.mapper.AccountsMapper; +import com.ruoyi.invest.mapper.BankCardLendMapper; +import com.ruoyi.invest.mapper.CreditCardBillMapper; +import com.ruoyi.job.service.IInvestJobService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * 生成数据 + * + * @author tianyongbao + * @date 2023-12-11 + */ +@Service +public class InvestJobImpl implements IInvestJobService +{ + @Resource + private BankCardLendMapper bankCardLendMapper; + @Resource + private AccountsMapper accountsMapper; + + @Resource + private AccountsDealRecordMapper accountsDealRecordMapper; + + @Resource + private CreditCardBillMapper creditCardBillMapper; + + + /** + * 生成数据 + * + * @author tianyongbao + * @date 2023-12-11 + */ + @Override + public void generateUnpaidCreditBill() { + //未出账单生成,定时任务,每3个小时同步计算一次,作为未出账单,根据信用卡基础信息,包括账单日及账单日消费信息,遍历信用卡记录信息表和交易记录表即可 + BankCardLendDto bankCardLendDto=new BankCardLendDto(); + bankCardLendDto.setType("2"); + List bankCardVoList=bankCardLendMapper.selectBankCardLendList(bankCardLendDto); + // 获取当前日期 + Date currentDate = new Date(); + // 创建SimpleDateFormat实例,指定日期格式 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + // 格式化日期为字符串 + String formattedDate = sdf.format(currentDate); + // 从格式化后的字符串中提取年份和月份 + String year = formattedDate.substring(0, 4); + String month = formattedDate.substring(5); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单"); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + Date billDate= new Date(); + //遍历数据,获取信用卡账单日及数据 + for (BankCardLendVo bankCard : bankCardVoList) { + //0表示当期,1表示下期 + String isNextBillDate = bankCard.getIsNextBillDate(); + String billDateStr=year+"-"+month+"-"+String.format("%02d", bankCard.getBillDate()); + try { + billDate=formatter.parse(billDateStr); + } catch (ParseException e) { + throw new RuntimeException(e); + } + + Calendar calendarStart = Calendar.getInstance(); + calendarStart.setTime(billDate); + calendarStart.add(Calendar.MONTH, -1); + if(isNextBillDate.equals("0")){ + calendarStart.add(Calendar.DATE, 1); + } + Date startDate = calendarStart.getTime(); + String periodStart = formatter.format(startDate); + + Calendar calendarEnd = Calendar.getInstance(); + calendarEnd.setTime(billDate); + if(isNextBillDate.equals("1")){ + calendarEnd.add(Calendar.DATE, -1); + } + Date endDate = calendarEnd.getTime(); + String periodEnd= formatter.format(endDate); + + double billAmount=0; + AccountsDealRecordDto accountsDealRecordDto=new AccountsDealRecordDto(); + accountsDealRecordDto.setAccountId(bankCard.getId()); + accountsDealRecordDto.setStartDateTime(startDate); + accountsDealRecordDto.setEndDateTime(endDate); + //获取所有交易记录 + List accountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(accountsDealRecordDto); + //支出转为负数 + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + if(vo.getDealType().equals("2")){ + vo.setAmount(vo.getAmount()*(-1)); + } + } + if(accountsDealRecordVoList.size()>0){ + billAmount=accountsDealRecordVoList.stream().mapToDouble(AccountsDealRecordVo::getAmount).sum(); + } + CreditCardBillDto creditCardBillDto=new CreditCardBillDto(); + creditCardBillDto.setCreditCardId(bankCard.getId()); + creditCardBillDto.setBillDate(billDateStr); + creditCardBillDto.setBillState("0"); + List creditCardBillList=creditCardBillMapper.selectCreditCardBillList(creditCardBillDto); + if(creditCardBillList.size()>0){ + CreditCardBillVo creditCardBillVo=creditCardBillList.get(0); + CreditCardBill creditCardBill=new CreditCardBill(); + creditCardBill.setUpdateBy(SecurityUtils.getUsername()); + creditCardBill.setUpdateTime(DateUtils.getNowDate()); + creditCardBill.setId(creditCardBillVo.getId()); + creditCardBill.setBillAmount(billAmount); + //更新未出账单 + creditCardBillMapper.updateCreditCardBill(creditCardBill); + }else { + + CreditCardBill creditCardBill=new CreditCardBill(); + try { + creditCardBill.setBillDate(formatter.parse(billDateStr)); + } catch (ParseException e) { + throw new RuntimeException(e); + } + creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate())); + creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd); + creditCardBill.setCreateBy(SecurityUtils.getUsername()); + creditCardBill.setCreateTime(DateUtils.getNowDate()); + creditCardBill.setId(IdWorker.getId()); + creditCardBill.setCreditCardId(bankCard.getId()); + creditCardBill.setBillAmount(billAmount); + creditCardBill.setBillState("0"); + //插入未出账单 + creditCardBillMapper.insertCreditCardBill(creditCardBill); + } + + } + } + + @Override + public void updateUnpaidInstallmentData(){ + //信用卡分期入账信息自动入账,同时更新信用卡额度相关信息 + // 获取当前日期 + Date currentDate = new Date(); + // 创建SimpleDateFormat实例,指定日期格式 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + // 格式化日期为字符串 + String formattedDate = sdf.format(currentDate); + } + + +} diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/AccountsDealRecordMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/AccountsDealRecordMapper.xml index 7d84f35..53dc414 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/AccountsDealRecordMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/AccountsDealRecordMapper.xml @@ -62,6 +62,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and to_char(a.create_time, 'yyyy-MM-dd')>=#{startTime} + + and #{endDateTime}>a.create_time + + + and a.create_time>=#{startDateTime} + + order by a.create_time desc diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/CreditCardBillMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/CreditCardBillMapper.xml index f6c9502..2280568 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/CreditCardBillMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/CreditCardBillMapper.xml @@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -33,6 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.update_by, a.update_time, a.del_flag, + a.bill_state, bc."name" as bank_name, bc.code as bank_code from @@ -47,12 +49,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.del_flag='0' and a.name like '%'|| #{name}||'%' and a.credit_card_id = #{creditCardId} + and a.bill_state = #{billState} and to_char(a.bill_date, 'yyyy-MM')>=#{startMonth} and #{endMonth}>=to_char(a.bill_date, 'yyyy-MM') + + and #{billDate}=to_char(a.bill_date, 'yyyy-MM-dd') + + + order by a.bill_date desc @@ -76,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, update_time, del_flag, + bill_state, #{id}, @@ -89,6 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, #{updateTime}, #{delFlag}, + #{billState}, @@ -105,6 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, del_flag = #{delFlag}, + bill_state = #{billState}, where id = #{id} diff --git a/ruoyi-modules/ruoyi-job/pom.xml b/ruoyi-modules/ruoyi-job/pom.xml index b5b68c3..fd7dd42 100644 --- a/ruoyi-modules/ruoyi-job/pom.xml +++ b/ruoyi-modules/ruoyi-job/pom.xml @@ -54,7 +54,12 @@ springfox-swagger-ui ${swagger.fox.version} - + + com.ruoyi + ruoyi-api-invest + 3.6.3 + compile + org.quartz-scheduler diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/InvestJobTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/InvestJobTask.java new file mode 100644 index 0000000..f2d76fe --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/InvestJobTask.java @@ -0,0 +1,34 @@ +package com.ruoyi.job.task; + +import com.ruoyi.api.invest.RemoteInvestService; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 照明平台定时任务 + * + * @author ruoyi + */ +@Component("investJobTask") +public class InvestJobTask +{ + @Autowired + private RemoteInvestService remoteInvestService; + + /**生成未出信用卡账单数据*/ + public void generateUnpaidCreditBillTask(){ + System.out.println("================================开始生成未出账单数据("+ DateUtils.getTime() +")================================="); + remoteInvestService.generateUnpaidCreditBillTask(); + System.out.println("================================结束生成未出账单据("+ DateUtils.getTime() +")================================="); + } + + /**未出信用卡分期账单入账数据*/ + public void updateUnpaidInstallmentDataTask(){ + System.out.println("================================开始更新未出信用卡分期账单入账数据("+ DateUtils.getTime() +")================================="); + remoteInvestService.updateUnpaidInstallmentDataTask(); + System.out.println("================================结束更新未出信用卡分期账单入账拟数据("+ DateUtils.getTime() +")================================="); + } + + +} From 8e66acfb8a6bea02c36158ab346a0035488dab82 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Sun, 28 Apr 2024 18:09:23 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fix=EF=BC=9A=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9B=B8=E5=85=B3,=E4=BF=A1=E7=94=A8=E5=8D=A1?= =?UTF-8?q?=E5=88=86=E6=9C=9F=E5=85=A5=E8=B4=A6=E4=BF=A1=E6=81=AF=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=85=A5=E8=B4=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/InstallmentHistoryDetailDto.java | 4 + .../ruoyi/job/service/impl/InvestJobImpl.java | 75 +++++++++++++++++-- .../invest/InstallmentHistoryDetailMapper.xml | 3 + ruoyi-modules/ruoyi-job/pom.xml | 1 + 4 files changed, 76 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/InstallmentHistoryDetailDto.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/InstallmentHistoryDetailDto.java index fae82fb..31311a2 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/InstallmentHistoryDetailDto.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/InstallmentHistoryDetailDto.java @@ -54,4 +54,8 @@ public class InstallmentHistoryDetailDto implements Serializable @ApiModelProperty(value="开始日期") private String startDate; + /** 应还款日期 */ + @ApiModelProperty(value="应还款日期相等") + private String repaymentEqualDate; + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java index ab58701..2d74f9e 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java @@ -2,18 +2,17 @@ package com.ruoyi.job.service.impl; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.IdWorker; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.invest.domain.AccountsDealRecord; import com.ruoyi.invest.domain.CreditCardBill; +import com.ruoyi.invest.domain.InstallmentHistoryDetail; import com.ruoyi.invest.domain.dto.AccountsDealRecordDto; import com.ruoyi.invest.domain.dto.BankCardLendDto; import com.ruoyi.invest.domain.dto.CreditCardBillDto; -import com.ruoyi.invest.domain.vo.AccountsDealRecordVo; -import com.ruoyi.invest.domain.vo.BankCardLendVo; -import com.ruoyi.invest.domain.vo.CreditCardBillVo; -import com.ruoyi.invest.mapper.AccountsDealRecordMapper; -import com.ruoyi.invest.mapper.AccountsMapper; -import com.ruoyi.invest.mapper.BankCardLendMapper; -import com.ruoyi.invest.mapper.CreditCardBillMapper; +import com.ruoyi.invest.domain.dto.InstallmentHistoryDetailDto; +import com.ruoyi.invest.domain.vo.*; +import com.ruoyi.invest.mapper.*; import com.ruoyi.job.service.IInvestJobService; import org.springframework.stereotype.Service; @@ -23,6 +22,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 生成数据 @@ -44,6 +44,9 @@ public class InvestJobImpl implements IInvestJobService @Resource private CreditCardBillMapper creditCardBillMapper; + @Resource + private InstallmentHistoryDetailMapper installmentHistoryDetailMapper; + /** * 生成数据 @@ -160,6 +163,64 @@ public class InvestJobImpl implements IInvestJobService SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 格式化日期为字符串 String formattedDate = sdf.format(currentDate); + InstallmentHistoryDetailDto installmentHistoryDetailDto=new InstallmentHistoryDetailDto(); + installmentHistoryDetailDto.setRepaymentEqualDate(formattedDate); + installmentHistoryDetailDto.setState("0"); + List historyDetailList=installmentHistoryDetailMapper.selectInstallmentHistoryDetailList(installmentHistoryDetailDto); + //修改名称加卡号 + for (InstallmentHistoryDetailVo installmentHistoryDetail : historyDetailList) { + installmentHistoryDetail.setPostingState("1"); + InstallmentHistoryDetail detail=new InstallmentHistoryDetail(); + detail.setUpdateBy(SecurityUtils.getUsername()); + detail.setUpdateTime(DateUtils.getNowDate()); + detail.setId(installmentHistoryDetail.getId()); + detail.setPostingState(installmentHistoryDetail.getPostingState()); + installmentHistoryDetailMapper.updateInstallmentHistoryDetail(detail); + //如果是信用卡分期 + if(installmentHistoryDetail.getType().equals("2")){ + //已入账 + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(installmentHistoryDetail.getRepaymentDate()); + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(new Date()); + long diffInMillis = cal2.getTimeInMillis() - cal1.getTimeInMillis(); + int daysDiff = Long.valueOf(TimeUnit.MILLISECONDS.toDays(diffInMillis)).intValue(); + //入账日期小于一个月的 + if("1".equals(installmentHistoryDetail.getPostingState())&&daysDiff<31){ + + //信用卡账户余额计算 + AccountsVo creditAccount=accountsMapper.selectAccountsById(installmentHistoryDetail.getBankCardLendId()); + creditAccount.setBalance(creditAccount.getBalance()-installmentHistoryDetail.getInterest()); + creditAccount.setAvailableLimit(creditAccount.getBalance()+creditAccount.getCreditLimit()); + creditAccount.setUpdateTime(installmentHistoryDetail.getUpdateTime()); + accountsMapper.updateAccounts(creditAccount); + + //信用卡消费记录明细 + AccountsDealRecord creditDeal=new AccountsDealRecord(); + creditDeal.setTransferRecordId(installmentHistoryDetail.getId()); + creditDeal.setAccountId(creditAccount.getAccountId()); + creditDeal.setId(IdWorker.getId()); + //支出金额 + creditDeal.setAmount(installmentHistoryDetail.getInterest()); + //实时余额 + creditDeal.setCurrentBalance(creditAccount.getBalance()); + //1储蓄卡,2 信用卡,3 网贷,4 人情,5 投资账户 + creditDeal.setType("2"); + //1 收入,2 支出,3 转账,4 借贷 + creditDeal.setDealType("2"); + //分期利息支出 + creditDeal.setDealCategory("10"); + creditDeal.setName(creditAccount.getName()+"("+ StringUtils.getLastNumberChars(4,creditAccount.getCode()+")")); + creditDeal.setRemark("分期利息"); + creditDeal.setCreateBy(SecurityUtils.getUsername()); + creditDeal.setCreateTime(installmentHistoryDetail.getUpdateTime()); + accountsDealRecordMapper.insertAccountsDealRecord(creditDeal); + } + } + + } + + } diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml index 7f2e8f4..89e105c 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml @@ -42,6 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and #{repaymentDate}>=to_char(a.repayment_date, 'yyyy-MM-dd') + + and #{repaymentEqualDate}=to_char(a.repayment_date, 'yyyy-MM-dd') + and to_char(a.repayment_date, 'yyyy-MM-dd')>=#{startDate} diff --git a/ruoyi-modules/ruoyi-job/pom.xml b/ruoyi-modules/ruoyi-job/pom.xml index fd7dd42..691c54c 100644 --- a/ruoyi-modules/ruoyi-job/pom.xml +++ b/ruoyi-modules/ruoyi-job/pom.xml @@ -75,6 +75,7 @@ org.postgresql postgresql + 42.2.22 From 3cadb56b5dae90f42ec1ef466228a1cd121596bc Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Sun, 28 Apr 2024 18:46:25 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix=EF=BC=9A=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9B=B8=E5=85=B3,=E4=BF=A1=E7=94=A8=E5=8D=A1?= =?UTF-8?q?=E5=88=86=E6=9C=9F=E5=85=A5=E8=B4=A6=E4=BF=A1=E6=81=AF=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=85=A5=E8=B4=A6,bug=E4=BF=AE=E5=A4=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/job/service/impl/InvestJobImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java index 2d74f9e..69ccb72 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java @@ -166,6 +166,7 @@ public class InvestJobImpl implements IInvestJobService InstallmentHistoryDetailDto installmentHistoryDetailDto=new InstallmentHistoryDetailDto(); installmentHistoryDetailDto.setRepaymentEqualDate(formattedDate); installmentHistoryDetailDto.setState("0"); + installmentHistoryDetailDto.setType("2"); List historyDetailList=installmentHistoryDetailMapper.selectInstallmentHistoryDetailList(installmentHistoryDetailDto); //修改名称加卡号 for (InstallmentHistoryDetailVo installmentHistoryDetail : historyDetailList) { @@ -176,8 +177,6 @@ public class InvestJobImpl implements IInvestJobService detail.setId(installmentHistoryDetail.getId()); detail.setPostingState(installmentHistoryDetail.getPostingState()); installmentHistoryDetailMapper.updateInstallmentHistoryDetail(detail); - //如果是信用卡分期 - if(installmentHistoryDetail.getType().equals("2")){ //已入账 Calendar cal1 = Calendar.getInstance(); cal1.setTime(installmentHistoryDetail.getRepaymentDate()); @@ -216,7 +215,7 @@ public class InvestJobImpl implements IInvestJobService creditDeal.setCreateTime(installmentHistoryDetail.getUpdateTime()); accountsDealRecordMapper.insertAccountsDealRecord(creditDeal); } - } + } From 7180a827440a52f8ef926cf64192aa420845669b Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Mon, 29 Apr 2024 09:07:33 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix=EF=BC=9A=E5=82=A8=E8=93=84=E5=8D=A1?= =?UTF-8?q?=E8=BD=AC=E8=B4=A6=EF=BC=8C=E5=AF=B9=E5=BA=94=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=97=B6=E9=97=B4=E4=B8=8D=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AccountsTransferRecordServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java index c20e915..d2411f3 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java @@ -468,7 +468,7 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor creditDeal.setName(outDebitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,outDebitCardVo.getCode())+")转账至"+inDebitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,inDebitCardVo.getCode())+")"); creditDeal.setRemark("储蓄卡转账"); creditDeal.setCreateBy(SecurityUtils.getUsername()); - creditDeal.setCreateTime(DateUtils.getNowDate()); + creditDeal.setCreateTime(accountsTransferRecord.getCreateTime()); accountsDealRecordMapper.insertAccountsDealRecord(creditDeal); //储蓄卡转入账户余额计算 @@ -495,7 +495,7 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor creditDeal.setName(outDebitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,outDebitCardVo.getCode())+")转账至"+inDebitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,inDebitCardVo.getCode())+")"); creditDeal.setRemark("储蓄卡转账"); creditDeal.setCreateBy(SecurityUtils.getUsername()); - creditDeal.setCreateTime(DateUtils.getNowDate()); + creditDeal.setCreateTime(accountsTransferRecord.getCreateTime()); accountsDealRecordMapper.insertAccountsDealRecord(creditDeal); accountsTransferRecord.setName(outDebitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,outDebitCardVo.getCode())+")转账至"+inDebitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,inDebitCardVo.getCode())+")"); }