From f25f329e4bd02ae6830eefe12eb9d362e3a4b568 Mon Sep 17 00:00:00 2001 From: limqhz <540344226@qq.com> Date: Thu, 9 Feb 2023 22:47:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E8=B0=83=E6=95=B4=E3=80=81?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/quinn/common/wx/BillMonthDTO.java | 34 +++++++++++++++++++ .../java/com/quinn/common/wx/BudgetDTO.java | 13 ++----- .../java/com/quinn/common/wx/IndexDTO.java | 25 ++++++++++++++ .../quinn/controller/wx/WxBillController.java | 32 +++++++++++++++++ .../controller/wx/WxBudgetController.java | 21 +++++++++++- .../com/quinn/mapper/AccBudgetMapper.java | 3 ++ .../com/quinn/mapper/xml/AccBudgetMapper.xml | 29 ++++++++++++++-- .../com/quinn/service/AccBudgetService.java | 3 ++ .../service/impl/AccBudgetServiceImpl.java | 9 +++++ 9 files changed, 154 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/quinn/common/wx/BillMonthDTO.java create mode 100644 src/main/java/com/quinn/common/wx/IndexDTO.java diff --git a/src/main/java/com/quinn/common/wx/BillMonthDTO.java b/src/main/java/com/quinn/common/wx/BillMonthDTO.java new file mode 100644 index 0000000..d79751d --- /dev/null +++ b/src/main/java/com/quinn/common/wx/BillMonthDTO.java @@ -0,0 +1,34 @@ +package com.quinn.common.wx; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * + *

+ * + * @author limqsh + * @since 2023-02-07 + */ +@Data +public class BillMonthDTO implements Serializable { + + private Double sumExpend; + private Double sumIncome; + private Double sumTransfer; + private Double sumRepayment; + + List accountList; + + +} diff --git a/src/main/java/com/quinn/common/wx/BudgetDTO.java b/src/main/java/com/quinn/common/wx/BudgetDTO.java index 2d025b8..267ebd7 100644 --- a/src/main/java/com/quinn/common/wx/BudgetDTO.java +++ b/src/main/java/com/quinn/common/wx/BudgetDTO.java @@ -1,18 +1,7 @@ package com.quinn.common.wx; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import com.quinn.pojo.AccBudget; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.util.Date; -import java.util.List; /** *

@@ -29,6 +18,8 @@ public class BudgetDTO extends AccBudget { private Double used; + private Double progress; + private String expendIcon; } diff --git a/src/main/java/com/quinn/common/wx/IndexDTO.java b/src/main/java/com/quinn/common/wx/IndexDTO.java new file mode 100644 index 0000000..f45e665 --- /dev/null +++ b/src/main/java/com/quinn/common/wx/IndexDTO.java @@ -0,0 +1,25 @@ +package com.quinn.common.wx; + +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author limqsh + * @since 2023-02-09 + */ +@Data +public class IndexDTO implements Serializable { + + private Double sumToday = 0.0; + + private Double sumBalance = 0.0; + + private Double sumBudget = 0.0; + + private Double sumUsed = 0.0; +} diff --git a/src/main/java/com/quinn/controller/wx/WxBillController.java b/src/main/java/com/quinn/controller/wx/WxBillController.java index b42a42c..cf8bb0e 100644 --- a/src/main/java/com/quinn/controller/wx/WxBillController.java +++ b/src/main/java/com/quinn/controller/wx/WxBillController.java @@ -3,12 +3,14 @@ package com.quinn.controller.wx; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.quinn.common.wx.AccBillDTO; import com.quinn.common.wx.AccBillType; +import com.quinn.common.wx.BillMonthDTO; import com.quinn.common.wx.ListBillByAccount; import com.quinn.dto.res.ResponseDTO; import com.quinn.pojo.AccBill; import com.quinn.pojo.AccSetting; import com.quinn.service.AccBillService; import com.quinn.service.AccSettingService; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -51,6 +53,36 @@ public class WxBillController extends BaseWxController{ return ResponseDTO.ok().setData(accBills); } + @PostMapping("user/bills/month") + public ResponseDTO getMonthBills(HttpServletRequest request,String rangeDate){ + BillMonthDTO billMonthDTO = new BillMonthDTO(); + List accBills = accBillService.listBillByDate(getLoginUserId(request),rangeDate); + double sumExpend = 0; + double sumIncome = 0; + double sumTransfer = 0; + double sumRepayment = 0; + for (AccBillDTO accBill : accBills) { + if (AccBillType.INCOME.equals(accBill.getBillType())){ + sumIncome = sumIncome + accBill.getMoney(); + } + if (AccBillType.EXPEND.equals(accBill.getBillType())){ + sumExpend = sumExpend + accBill.getMoney(); + } + if (AccBillType.TRANSFER.equals(accBill.getBillType())){ + sumTransfer = sumTransfer + accBill.getMoney(); + } + if (AccBillType.REPAYMENT.equals(accBill.getBillType())){ + sumRepayment = sumRepayment + accBill.getMoney(); + } + } + billMonthDTO.setSumExpend(sumExpend); + billMonthDTO.setSumIncome(sumIncome); + billMonthDTO.setSumTransfer(sumTransfer); + billMonthDTO.setSumRepayment(sumRepayment); + billMonthDTO.setAccountList(accBills); + return ResponseDTO.ok().setData(billMonthDTO); + } + @PostMapping("user/bills/account") public ResponseDTO getBillsByBills(HttpServletRequest request, ListBillByAccount listBillByAccount){ List accBills = accBillService.listBillByAccount(getLoginUserId(request),listBillByAccount.getSid(),listBillByAccount.getDateRange()); diff --git a/src/main/java/com/quinn/controller/wx/WxBudgetController.java b/src/main/java/com/quinn/controller/wx/WxBudgetController.java index 1383da6..2ffc222 100644 --- a/src/main/java/com/quinn/controller/wx/WxBudgetController.java +++ b/src/main/java/com/quinn/controller/wx/WxBudgetController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.quinn.common.wx.AccBudgetDTO; import com.quinn.common.wx.BudgetDTO; import com.quinn.common.wx.EditBudget; +import com.quinn.common.wx.IndexDTO; import com.quinn.dto.res.ResponseDTO; import com.quinn.pojo.AccBudget; import com.quinn.service.AccBudgetService; @@ -32,11 +33,17 @@ public class WxBudgetController extends BaseWxController{ @Resource AccBudgetService accBudgetService; + @PostMapping("user/budget/index") + public ResponseDTO getIndexBudget(HttpServletRequest request){ + IndexDTO result = accBudgetService.getIndexBudget(getLoginUserId(request)); + return ResponseDTO.ok().setData(result); + } + @PostMapping("user/budget") public ResponseDTO getBudget(HttpServletRequest request){ AccBudgetDTO result = new AccBudgetDTO(); List accBills = accBudgetService.getBudget(getLoginUserId(request)); - List sum = accBills.stream().filter(x -> x.getExpendId() == 1).collect(Collectors.toList()); + List sum = accBills.stream().filter(x -> x.getExpendId() == -1).collect(Collectors.toList()); if (sum != null && sum.size() > 0){ BudgetDTO budgetDTO = sum.get(0); result.setSumBudget(budgetDTO.getBudget()); @@ -44,6 +51,18 @@ public class WxBudgetController extends BaseWxController{ result.setSumBalance(budgetDTO.getBudget() - budgetDTO.getUsed()); } List list = accBills.stream().filter(x -> x.getExpendId() != -1).collect(Collectors.toList()); + if (list != null && list.size() > 0){ + list.forEach(x->{ + double progress = 0; + try{ + progress = x.getUsed() / x.getBudget(); + progress = Math.floor(progress * 10000) / 100; + }catch (Exception e){ + // do nothing + } + x.setProgress(progress); + }); + } result.setPayTypeList(list); return ResponseDTO.ok().setData(result); } diff --git a/src/main/java/com/quinn/mapper/AccBudgetMapper.java b/src/main/java/com/quinn/mapper/AccBudgetMapper.java index ef85311..ce1d66d 100644 --- a/src/main/java/com/quinn/mapper/AccBudgetMapper.java +++ b/src/main/java/com/quinn/mapper/AccBudgetMapper.java @@ -1,6 +1,7 @@ package com.quinn.mapper; import com.quinn.common.wx.BudgetDTO; +import com.quinn.common.wx.IndexDTO; import com.quinn.pojo.AccBudget; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -17,4 +18,6 @@ import java.util.List; public interface AccBudgetMapper extends BaseMapper { List getBudget(String userId, String startDate, String endDate); + + IndexDTO getIndexBudget(String userId, String todayDate, String startDate, String endDate); } diff --git a/src/main/java/com/quinn/mapper/xml/AccBudgetMapper.xml b/src/main/java/com/quinn/mapper/xml/AccBudgetMapper.xml index 3331804..ec65185 100644 --- a/src/main/java/com/quinn/mapper/xml/AccBudgetMapper.xml +++ b/src/main/java/com/quinn/mapper/xml/AccBudgetMapper.xml @@ -2,12 +2,35 @@ + + diff --git a/src/main/java/com/quinn/service/AccBudgetService.java b/src/main/java/com/quinn/service/AccBudgetService.java index 620b504..db269bb 100644 --- a/src/main/java/com/quinn/service/AccBudgetService.java +++ b/src/main/java/com/quinn/service/AccBudgetService.java @@ -1,6 +1,7 @@ package com.quinn.service; import com.quinn.common.wx.BudgetDTO; +import com.quinn.common.wx.IndexDTO; import com.quinn.pojo.AccBudget; import com.baomidou.mybatisplus.extension.service.IService; @@ -17,4 +18,6 @@ import java.util.List; public interface AccBudgetService extends IService { List getBudget(String userId); + + IndexDTO getIndexBudget(String userId); } diff --git a/src/main/java/com/quinn/service/impl/AccBudgetServiceImpl.java b/src/main/java/com/quinn/service/impl/AccBudgetServiceImpl.java index f82b9d0..f371918 100644 --- a/src/main/java/com/quinn/service/impl/AccBudgetServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/AccBudgetServiceImpl.java @@ -1,6 +1,7 @@ package com.quinn.service.impl; import com.quinn.common.wx.BudgetDTO; +import com.quinn.common.wx.IndexDTO; import com.quinn.pojo.AccBudget; import com.quinn.mapper.AccBudgetMapper; import com.quinn.service.AccBudgetService; @@ -33,4 +34,12 @@ public class AccBudgetServiceImpl extends ServiceImpl