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